home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 22 / CU Amiga Magazine's Super CD-ROM 22 (1998)(EMAP Images)(GB)[!][issue 1998-05].iso / PowerPC / Programming / PPCSmallEiffel / bin_c / pretty12.c < prev    next >
Encoding:
C/C++ Source or Header  |  1998-01-16  |  62.9 KB  |  2,358 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "pretty.h"
  9. int r818a_feature_name(T818* C){
  10. int R=0;
  11. /*IF*/if (r818a_prefix(C)) {
  12. C->_last_feature_name=(((T818*)C))->_last_prefix/*125*/;
  13. R=1;
  14. }
  15.  else if (r818a_infix(C)) {
  16. C->_last_feature_name=(((T818*)C))->_last_infix/*121*/;
  17. R=1;
  18. }
  19.  else if (r818a_identifier(C)) {
  20. C->_last_feature_name=r511to_simple_feature_name(((T511*)(oBC818tmp_name)));
  21. R=1;
  22. }
  23. /*FI*/return R;
  24. }
  25. /*No:EIFFEL_PARSER.us_and*/
  26. void r818a_feature_clause(T818* C){
  27. T0* _comment=NULL;
  28. T0* _clients=NULL;
  29. T0* _feature_clause=NULL;
  30. _clients=r818a_clients(C);
  31. _comment=r818get_comments(C);
  32. /*[IRF3.3clear*/((((T352*)(((T352*)(oBC818faof)))))->_upper)=(-(1));
  33. /*]*/
  34. while (!(!(r818a_feature_declaration(C)))) {
  35. C->_ok=r818skip1(C,'\73');
  36. /*IF*/if (((((T818*)C))->_last_feature_declaration/*101*/)!=((void*)(NULL))) {
  37. r352add_last(((T352*)(oBC818faof)),(((T818*)C))->_last_feature_declaration/*101*/);
  38. X359set_header_comment((((T818*)C))->_last_feature_declaration/*101*/,r818get_comments(C));
  39. }
  40. /*FI*/}
  41. /*IF*/if (((((T352*)((T352*)(oBC818faof))))->_upper/*8*/)>=(0)) {
  42. {T153*n=malloc(sizeof(*n));
  43. *n=M153;
  44. r153make(n,_clients,_comment,r352twin(((T352*)(oBC818faof))));
  45. _feature_clause=(T0*)n;
  46. }
  47. r605add_feature_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_feature_clause);
  48. }
  49.  else if ((_comment)!=((void*)(NULL))) {
  50. {T153*n=malloc(sizeof(*n));
  51. *n=M153;
  52. r153make(n,_clients,_comment,NULL);
  53. _feature_clause=(T0*)n;
  54. }
  55. r605add_feature_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_feature_clause);
  56. }
  57. /*FI*/C->_last_keyword=NULL;
  58. }
  59. /*No:EIFFEL_PARSER.in_rescue*/
  60. /*No:EIFFEL_PARSER.us_and_then*/
  61. int r818a_manifest_constant(T818* C){
  62. int R=0;
  63. /*IF*/if (r818a_boolean_constant(C)) {
  64. C->_last_manifest_constant=(((T818*)C))->_last_boolean_constant/*81*/;
  65. R=1;
  66. }
  67.  else if (r818a_character_constant(C)) {
  68. C->_last_manifest_constant=(((T818*)C))->_last_character_constant/*85*/;
  69. R=1;
  70. }
  71.  else if (r818a_manifest_string(C)) {
  72. C->_last_manifest_constant=(((T818*)C))->_last_manifest_string/*145*/;
  73. R=1;
  74. }
  75.  else if (r818a_bit_constant(C)) {
  76. C->_last_manifest_constant=(((T818*)C))->_last_bit_constant/*77*/;
  77. R=1;
  78. }
  79.  else if (r818a_real_constant(C)) {
  80. C->_last_manifest_constant=(((T818*)C))->_last_real_constant/*153*/;
  81. R=1;
  82. }
  83.  else if (r818a_integer_constant(C)) {
  84. C->_last_manifest_constant=(((T818*)C))->_last_integer_constant/*129*/;
  85. R=1;
  86. }
  87. /*FI*/return R;
  88. }
  89. /*No:EIFFEL_PARSER.last_instruction*/
  90. int r818a_bit_constant(T818* C){
  91. int R=0;
  92. int _state=0;
  93. int _c=0;
  94. int _l=0;
  95. /*IF*/if ((((((T818*)C))->_cc/*24*/)==('0'))||(((((T818*)C))->_cc/*24*/)==('1'))) {
  96. _l=(((T818*)C))->_line/*16*/;
  97. _c=(((T818*)C))->_column/*12*/;
  98. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC818tmp_string)))))->_count)=(0);
  99. /*]*/
  100. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  101. while (!((_state)>(0))) {
  102. r818next_char(C);
  103. {int z1=(((T818*)C))->_cc/*24*/;
  104.  
  105. if(((48<=z1)&&(z1<=49))){
  106. r7extend(((T7*)(oBC818tmp_string)),(((T818*)C))->_cc/*24*/);
  107. }
  108.  else 
  109. if((66==z1)||(98==z1)){
  110. {T940*n=malloc(sizeof(*n));
  111. *n=M940;
  112. r940make(n,r818pos(_l,_c),r7twin(((T7*)(oBC818tmp_string))));
  113. C->_last_bit_constant=(T0*)n;
  114. }
  115. r818next_char(C);
  116. r818skip_comments(C);
  117. _state=1;
  118. R=1;
  119. }
  120.  else{r818go_back_at(C,_l,_c);
  121. _state=2;
  122. }}
  123. }
  124. }
  125. /*FI*/return R;
  126. }
  127. T0*oBC818faof=NULL;
  128. /*No:EIFFEL_PARSER.fz_jvm_invokestatic*/
  129. int r818a_index_clause(T818* C){
  130. int R=0;
  131. T0* _index_clause=NULL;
  132. /*IF*/if (r818a_identifier(C)) {
  133. R=1;
  134. /*IF*/if (r818skip1(C,'\72')) {
  135. {T782*n=malloc(sizeof(*n));
  136. *n=M782;
  137. /*[IRF3.3make*/((((T782*)(n)))->_index)=(r511to_string(((T511*)(oBC818tmp_name))));
  138. /*]*/
  139. _index_clause=(T0*)n;
  140. }
  141. /*IF*/if (r818a_index_value(C)) {
  142. r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_index_value/*137*/);
  143. }
  144. else {
  145. r818fcp(C,((T0*)ms141_818));
  146. }
  147. /*FI*/}
  148. else {
  149. {T782*n=malloc(sizeof(*n));
  150. *n=M782;
  151. /*[IRF3.3make*/((((T782*)(n)))->_index)=(NULL);
  152. /*]*/
  153. _index_clause=(T0*)n;
  154. }
  155. r782add_index_value(((T782*)_index_clause),r511to_simple_feature_name(((T511*)(oBC818tmp_name))));
  156. }
  157. /*FI*/}
  158.  else if (r818a_manifest_constant(C)) {
  159. R=1;
  160. {T782*n=malloc(sizeof(*n));
  161. *n=M782;
  162. /*[IRF3.3make*/((((T782*)(n)))->_index)=(NULL);
  163. /*]*/
  164. _index_clause=(T0*)n;
  165. }
  166. r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_manifest_constant/*141*/);
  167. }
  168. /*FI*//*IF*/if (R) {
  169. while (!(!(r818skip1(C,'\54')))) {
  170. /*IF*/if (r818a_index_value(C)) {
  171. r782add_index_value(((T782*)_index_clause),(((T818*)C))->_last_index_value/*137*/);
  172. }
  173. else {
  174. r818fcp(C,((T0*)ms141_818));
  175. }
  176. /*FI*/}
  177. r605add_index_clause(((T605*)((((T818*)C))->_last_base_class/*65*/)),_index_clause);
  178. }
  179. /*FI*/return R;
  180. }
  181. /*No:EIFFEL_PARSER.line*/
  182. /*No:EIFFEL_PARSER.make*/
  183. /*No:EIFFEL_PARSER.last_index_value*/
  184. /*No:EIFFEL_PARSER.show_nb_warnings*/
  185. /*No:EIFFEL_PARSER.fz_rescue*/
  186. int r818a_infix(T818* C){
  187. int R=0;
  188. T0* _sp=NULL;
  189. /*IF*/if (r818a_keyword(C,((T0*)ms23_470))) {
  190. R=1;
  191. {T627*n=malloc(sizeof(*n));
  192. *n=M627;
  193. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  194. _sp=(T0*)n;
  195. }
  196. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) {
  197. r818next_char(C);
  198. }
  199. else {
  200. /*[IRF3.6wcp*/{T818* C1=C;
  201. T0* b1=((T0*)ms96_818);
  202. r818warning(r818current_position(C1),b1);
  203. }/*]*/
  204. }
  205. /*FI*//*IF*/if (r818a_binary(C,_sp)) {
  206. C->_last_infix=(((T818*)C))->_last_binary/*73*/;
  207. }
  208.  else if (r818a_free_operator(C)) {
  209. C->_last_infix=r511to_infix_name(_sp);
  210. }
  211. else {
  212. r818fcp(C,((T0*)ms97_818));
  213. }
  214. /*FI*//*IF*/if (!(r818skip1(C,'\42'))) {
  215. /*[IRF3.6wcp*/{T818* C1=C;
  216. T0* b1=((T0*)ms98_818);
  217. r818warning(r818current_position(C1),b1);
  218. }/*]*/
  219. }
  220. /*FI*/}
  221. /*FI*/return R;
  222. }
  223. T0* r818a_actuals(T818* C){
  224. T0* R=NULL;
  225. T0* _args=NULL;
  226. /*IF*/if (r818skip1(C,'\50')) {
  227. while (!(!(r818a_actual(C)))) {
  228. /*IF*/if ((_args)==((void*)(NULL))) {
  229. _args=se_ma96(1,(((T818*)C))->_last_expression/*97*/);
  230. }
  231. else {
  232. X96add_last(_args,(((T818*)C))->_last_expression/*97*/);
  233. }
  234. /*FI*//*IF*/if ((!(r818skip1(C,'\54')))&&(((((T818*)C))->_cc/*24*/)!=('\51'))) {
  235. /*[IRF3.6wcp*/{T818* C1=C;
  236. T0* b1=((T0*)ms143_818);
  237. r818warning(r818current_position(C1),b1);
  238. }/*]*/
  239. }
  240. /*FI*/}
  241. /*IF*/if ((_args)==((void*)(NULL))) {
  242. /*[IRF3.6wcp*/{T818* C1=C;
  243. T0* b1=((T0*)ms31_818);
  244. r818warning(r818current_position(C1),b1);
  245. }/*]*/
  246. }
  247. else {
  248. {T431*n=malloc(sizeof(*n));
  249. *n=M431;
  250. /*[IRF3.3make*/((((T431*)(n)))->_list)=(_args);
  251. /*]*/
  252. R=(T0*)n;
  253. }
  254. }
  255. /*FI*//*IF*/if (!(r818skip1(C,'\51'))) {
  256. r818fcp(C,((T0*)ms32_818));
  257. }
  258. /*FI*/}
  259. /*FI*/return R;
  260. }
  261. /*No:EIFFEL_PARSER.us_pointer*/
  262. /*No:EIFFEL_PARSER.fz_iinaiv*/
  263. int r818a_actual(T818* C){
  264. int R=0;
  265. /*IF*/if (r818skip1(C,'\44')) {
  266. /*IF*/if (r818a_identifier(C)) {
  267. /*IF*/if (((r818a_result(C))||(r818a_void(C)))||(r818a_current(C))) {
  268. r683add_position(X662start_position((((T818*)C))->_last_expression/*97*/));
  269. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms155_818);
  270. r683fatal_error(((T683*)(oBC364eh)),b1);
  271. }/*]*/
  272. }
  273. else {
  274. {T708*n=malloc(sizeof(*n));
  275. *n=M708;
  276. /*[IRF3.3make*/((((T708*)(n)))->_feature_name)=(r511to_simple_feature_name(((T511*)(oBC818tmp_name))));
  277. /*]*/
  278. C->_last_expression=(T0*)n;
  279. }
  280. R=1;
  281. }
  282. /*FI*/}
  283. else {
  284. r818fcp(C,((T0*)ms155_818));
  285. }
  286. /*FI*/}
  287.  else if (r818a_expression(C)) {
  288. R=1;
  289. }
  290. /*FI*/return R;
  291. }
  292. /*No:EIFFEL_PARSER.us_string*/
  293. /*No:EIFFEL_PARSER.local_vars*/
  294. void r818a_base_class_name1(T818* C){
  295. T0* _ccn=NULL;
  296. int _do_warning=0;
  297. int _state=0;
  298. _ccn=(((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_base_class_name/*24*/;
  299. /*IF*/if (r3is_letter((((T818*)C))->_cc/*24*/)) {
  300. r627set_line_column(((T627*)((((T451*)((T451*)_ccn)))->_start_position/*4*/)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  301. r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  302. /*IF*/if ((((unsigned)((((T818*)C))->_cc/*24*/))>=((unsigned)('a')))) {
  303. _do_warning=1;
  304. C->_cc=r3to_upper((((T818*)C))->_cc/*24*/);
  305. }
  306. /*FI*//*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  307. r7extend(((T7*)(oBC511tmp_string)),b1);
  308. }/*]*/
  309. while (!((_state)>(0))) {
  310. r818next_char(C);
  311. {int z1=(((T818*)C))->_cc/*24*/;
  312.  
  313. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)){
  314. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  315. r7extend(((T7*)(oBC511tmp_string)),b1);
  316. }/*]*/
  317. }
  318.  else 
  319. if(((97<=z1)&&(z1<=122))){
  320. _do_warning=1;
  321. /*[IRF3.6extend*/{char b1=r3to_upper((((T818*)C))->_cc/*24*/);
  322. r7extend(((T7*)(oBC511tmp_string)),b1);
  323. }/*]*/
  324. }
  325.  else{_state=1;
  326. }}
  327. }
  328. r818skip_comments(C);
  329. /*IF*/if (r511isa_keyword()) {
  330. r683add_position((((T451*)((T451*)_ccn)))->_start_position/*4*/);
  331. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms154_818);
  332. r683fatal_error(((T683*)(oBC364eh)),b1);
  333. }/*]*/
  334. }
  335. /*FI*//*IF*/if (_do_warning) {
  336. r818warning((((T451*)((T451*)_ccn)))->_start_position/*4*/,((T0*)ms153_818));
  337. }
  338. /*FI*/r451identify(((T451*)_ccn),r511to_string(((T511*)(oBC818tmp_name))));
  339. }
  340. else {
  341. r818fcp(C,((T0*)ms154_818));
  342. }
  343. /*FI*//*IF*/if (r52fast_has(((T52*)(oBC818forbidden_class)),(((T451*)((T451*)_ccn)))->_to_string/*0*/)) {
  344. r683add_position((((T451*)((T451*)_ccn)))->_start_position/*4*/);
  345. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms25_818);
  346. r683fatal_error(((T683*)(oBC364eh)),b1);
  347. }/*]*/
  348. }
  349. /*FI*/}
  350. int r818a_strip(T818* C){
  351. int R=0;
  352. T0* _sp=NULL;
  353. /*IF*/if (r818a_keyword(C,((T0*)ms45_470))) {
  354. {T627*n=malloc(sizeof(*n));
  355. *n=M627;
  356. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  357. _sp=(T0*)n;
  358. }
  359. /*IF*/if (r818skip1(C,'\50')) {
  360. C->_ok=r818a_feature_list(C);
  361. {T420*n=malloc(sizeof(*n));
  362. *n=M420;
  363. r420make(n,_sp,(((T818*)C))->_last_feature_list/*105*/);
  364. C->_last_expression=(T0*)n;
  365. }
  366. /*IF*/if (!(r818skip1(C,'\51'))) {
  367. r818fcp(C,((T0*)ms123_818));
  368. }
  369. /*FI*/R=1;
  370. }
  371. else {
  372. r818fcp(C,((T0*)ms124_818));
  373. }
  374. /*FI*/}
  375. /*FI*/return R;
  376. }
  377. /*No:EIFFEL_PARSER.fz_external*/
  378. T0* r818a_compound1(T818* C,T0* a1){
  379. T0* R=NULL;
  380. T0* _instruction=NULL;
  381. T0* _list=NULL;
  382. T0* _hc=NULL;
  383. _hc=r818get_comments(C);
  384. while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
  385. /*[IRF3.6wcp*/{T818* C1=C;
  386. T0* b1=((T0*)ms68_470);
  387. r818warning(r818current_position(C1),b1);
  388. }/*]*/
  389. C->_ok=r818skip1(C,'\73');
  390. }
  391. while (!((!(r818a_instruction(C)))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  392. _instruction=(((T818*)C))->_last_instruction/*133*/;
  393. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\50')) {
  394. /*[IRF3.6wcp*/{T818* C1=C;
  395. T0* b1=((T0*)ms144_818);
  396. r818warning(r818current_position(C1),b1);
  397. }/*]*/
  398. }
  399. /*FI*/C->_ok=r818skip1(C,'\73');
  400. while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
  401. /*[IRF3.6wcp*/{T818* C1=C;
  402. T0* b1=((T0*)ms68_470);
  403. r818warning(r818current_position(C1),b1);
  404. }/*]*/
  405. C->_ok=r818skip1(C,'\73');
  406. }
  407. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  408. /*IF*/if ((_list)==((void*)(NULL))) {
  409. _list=se_ma419(1,X465add_comment(_instruction,r818get_comments(C)));
  410. }
  411. else {
  412. r419add_last(((T419*)_list),X465add_comment(_instruction,r818get_comments(C)));
  413. }
  414. /*FI*/}
  415. /*FI*/}
  416. /*IF*/if (((_hc)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) {
  417. {T592*n=malloc(sizeof(*n));
  418. *n=M592;
  419. r592make(n,_hc,_list);
  420. R=(T0*)n;
  421. }
  422. }
  423. /*FI*/return R;
  424. }
  425. /*No:EIFFEL_PARSER.fz_prefix*/
  426. /*No:EIFFEL_PARSER.fz_all*/
  427. /*No:EIFFEL_PARSER.column*/
  428. int r818a_loop(T818* C){
  429. int R=0;
  430. T0* _al=NULL;
  431. T0* _hc=NULL;
  432. T0* _lb=NULL;
  433. T0* _ue=NULL;
  434. T0* _vc=NULL;
  435. T0* _ic=NULL;
  436. T0* _i=NULL;
  437. T0* _e_loop=NULL;
  438. int _c2=0;
  439. int _l2=0;
  440. int _c1=0;
  441. int _l1=0;
  442. /*IF*/if (r818a_keyword(C,((T0*)ms19_470))) {
  443. R=1;
  444. _l1=(((T818*)C))->_start_line/*169*/;
  445. _c1=(((T818*)C))->_start_column/*165*/;
  446. _i=r818a_compound1(C,((T0*)ms102_818));
  447. /*IF*/if (r818a_keyword(C,((T0*)ms26_470))) {
  448. _l2=(((T818*)C))->_start_line/*169*/;
  449. _c2=(((T818*)C))->_start_column/*165*/;
  450. _hc=r818get_comments(C);
  451. _al=r818a_assertion(C);
  452. /*IF*/if (((_hc)!=((void*)(NULL)))||((_al)!=((void*)(NULL)))) {
  453. {T213*n=malloc(sizeof(*n));
  454. *n=M213;
  455. r213make(n,r818pos(_l2,_c2),_hc,_al);
  456. _ic=(T0*)n;
  457. }
  458. }
  459. /*FI*/}
  460. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms51_470))) {
  461. /*IF*/if ((r818a_tag_mark(C))&&(r818a_expression(C))) {
  462. {T158*n=malloc(sizeof(*n));
  463. *n=M158;
  464. r158make(n,(((T818*)C))->_last_tag_mark/*161*/,(((T818*)C))->_last_expression/*97*/,r818get_comments(C));
  465. _vc=(T0*)n;
  466. }
  467. }
  468.  else if (r818a_expression(C)) {
  469. {T145*n=malloc(sizeof(*n));
  470. *n=M145;
  471. r145make(n,(((T818*)C))->_last_expression/*97*/,r818get_comments(C));
  472. _vc=(T0*)n;
  473. }
  474. }
  475. else {
  476. /*[IRF3.6wcp*/{T818* C1=C;
  477. T0* b1=((T0*)ms103_818);
  478. r818warning(r818current_position(C1),b1);
  479. }/*]*/
  480. }
  481. /*FI*/}
  482. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms50_470))) {
  483. /*IF*/if (r818a_expression(C)) {
  484. _ue=X662add_comment((((T818*)C))->_last_expression/*97*/,r818get_comments(C));
  485. }
  486. else {
  487. r818fcp(C,((T0*)ms104_818));
  488. _ue=(((T818*)C))->_last_expression/*97*/;
  489. }
  490. /*FI*/}
  491. else {
  492. r818fcp(C,((T0*)ms105_818));
  493. _ue=(((T818*)C))->_last_expression/*97*/;
  494. }
  495. /*FI*//*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
  496. /*[IRF3.6wcp*/{T818* C1=C;
  497. T0* b1=((T0*)ms68_470);
  498. r818warning(r818current_position(C1),b1);
  499. }/*]*/
  500. C->_ok=r818skip1(C,'\73');
  501. }
  502. /*FI*//*IF*/if (!(r818a_keyword(C,((T0*)ms32_470)))) {
  503. /*[IRF3.6wcp*/{T818* C1=C;
  504. T0* b1=((T0*)ms106_818);
  505. r818warning(r818current_position(C1),b1);
  506. }/*]*/
  507. }
  508. /*FI*/_lb=r818a_compound2(C,((T0*)ms107_818),((T0*)ms12_470));
  509. {T880*n=malloc(sizeof(*n));
  510. *n=M880;
  511. r880make(n,r818pos(_l1,_c1),_i,_ic,_vc,_ue,_lb);
  512. _e_loop=(T0*)n;
  513. }
  514. C->_last_instruction=_e_loop;
  515. }
  516. /*FI*/return R;
  517. }
  518. /*No:EIFFEL_PARSER.fz_feature*/
  519. /*No:EIFFEL_PARSER.fz_true*/
  520. int r818a_local_variable(T818* C){
  521. int R=0;
  522. int _rank=0;
  523. /*IF*/if (((((T818*)C))->_local_vars/*49*/)!=((void*)(NULL))) {
  524. _rank=r620rank_of(((T620*)((((T818*)C))->_local_vars/*49*/)),r511to_string(((T511*)(oBC818tmp_name))));
  525. /*IF*/if ((_rank)>(0)) {
  526. C->_last_expression=r511to_local_name2(((T511*)(oBC818tmp_name)),(((T818*)C))->_local_vars/*49*/,_rank);
  527. R=1;
  528. }
  529. /*FI*/}
  530. /*FI*/return R;
  531. }
  532. /*No:EIFFEL_PARSER.start_column*/
  533. /*No:EIFFEL_PARSER.us_ge*/
  534. /*No:EIFFEL_PARSER.us_neq*/
  535. T0*oBC364echo=NULL;
  536. int r818skip1unless2(T818* C,char a1,char a2){
  537. int R=0;
  538. C->_start_line=(((T818*)C))->_line/*16*/;
  539. C->_start_column=(((T818*)C))->_column/*12*/;
  540. /*IF*/if (((((T818*)C))->_cc/*24*/)==(a1)) {
  541. r818next_char(C);
  542. /*IF*/if (((((T818*)C))->_cc/*24*/)==(a2)) {
  543. r818prev_char(C);
  544. }
  545. else {
  546. R=1;
  547. r818skip_comments(C);
  548. }
  549. /*FI*/}
  550. /*FI*/return R;
  551. }
  552. /*No:EIFFEL_PARSER.fz_if*/
  553. T0* r818a_compound2(T818* C,T0* a1,T0* a2){
  554. T0* R=NULL;
  555. T0* _instruction=NULL;
  556. T0* _list=NULL;
  557. T0* _hc=NULL;
  558. _hc=r818get_comments(C);
  559. while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
  560. /*[IRF3.6wcp*/{T818* C1=C;
  561. T0* b1=((T0*)ms68_470);
  562. r818warning(r818current_position(C1),b1);
  563. }/*]*/
  564. C->_ok=r818skip1(C,'\73');
  565. }
  566. while (!((!(r818a_instruction(C)))||((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)>(0)))) {
  567. _instruction=(((T818*)C))->_last_instruction/*133*/;
  568. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\50')) {
  569. /*[IRF3.6wcp*/{T818* C1=C;
  570. T0* b1=((T0*)ms144_818);
  571. r818warning(r818current_position(C1),b1);
  572. }/*]*/
  573. }
  574. /*FI*/C->_ok=r818skip1(C,'\73');
  575. while (!(((((T818*)C))->_cc/*24*/)!=('\73'))) {
  576. /*[IRF3.6wcp*/{T818* C1=C;
  577. T0* b1=((T0*)ms68_470);
  578. r818warning(r818current_position(C1),b1);
  579. }/*]*/
  580. C->_ok=r818skip1(C,'\73');
  581. }
  582. /*IF*/if ((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0)) {
  583. /*IF*/if ((_list)==((void*)(NULL))) {
  584. _list=se_ma419(1,X465add_comment(_instruction,r818get_comments(C)));
  585. }
  586. else {
  587. r419add_last(((T419*)_list),X465add_comment(_instruction,r818get_comments(C)));
  588. }
  589. /*FI*/}
  590. /*FI*/}
  591. /*IF*/if (!(r818a_keyword(C,a2))) {
  592. /*[IRF3.6append*/{T0* b1=((T0*)ms57_818);
  593. r7append(((T7*)(oBC683explanation)),b1);
  594. }/*]*/
  595. /*[IRF3.6append*/{T0* b1=a1;
  596. r7append(((T7*)(oBC683explanation)),b1);
  597. }/*]*/
  598. /*[IRF3.6append*/{T0* b1=((T0*)ms58_818);
  599. r7append(((T7*)(oBC683explanation)),b1);
  600. }/*]*/
  601. /*[IRF3.6append*/{T0* b1=a2;
  602. r7append(((T7*)(oBC683explanation)),b1);
  603. }/*]*/
  604. r818fcp(C,((T0*)ms59_818));
  605. }
  606. /*FI*//*IF*/if (((_hc)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) {
  607. {T592*n=malloc(sizeof(*n));
  608. *n=M592;
  609. r592make(n,_hc,_list);
  610. R=(T0*)n;
  611. }
  612. }
  613. /*FI*/return R;
  614. }
  615. int r818a_rename_pair(T818* C){
  616. int R=0;
  617. T0* _rename_pair=NULL;
  618. T0* _name1=NULL;
  619. /*IF*/if (r818a_feature_name(C)) {
  620. _name1=(((T818*)C))->_last_feature_name/*109*/;
  621. /*IF*/if (r818a_keyword(C,((T0*)ms3_470))) {
  622. /*IF*/if (r818a_feature_name(C)) {
  623. R=1;
  624. {T498*n=malloc(sizeof(*n));
  625. *n=M498;
  626. r498make(n,_name1,(((T818*)C))->_last_feature_name/*109*/);
  627. _rename_pair=(T0*)n;
  628. }
  629. r877add_rename(((T877*)((((T818*)C))->_last_parent/*149*/)),_rename_pair);
  630. }
  631. else {
  632. r818fcp(C,((T0*)ms113_818));
  633. }
  634. /*FI*/}
  635. else {
  636. /*[IRF3.6go_back*/{T818* C1=C;
  637. T0* b1=X776start_position(_name1);
  638. r818go_back_at(C1,/*(IRF4.6line*/((((T627*)((T627*)b1)))->_mem_line_column/*4*/)/(1000)/*)*/,/*(IRF4.6column*/((((T627*)((T627*)b1)))->_mem_line_column/*4*/)%(1000)/*)*/);
  639. }/*]*/
  640. }
  641. /*FI*/}
  642. /*FI*/return R;
  643. }
  644. /*No:EIFFEL_PARSER.us_slash*/
  645. /*No:EIFFEL_PARSER.fz_alias*/
  646. /*No:EIFFEL_PARSER.fz_debug*/
  647. int r818a_keyword(T818* C,T0* a1){
  648. int R=0;
  649. int _keyword_count=0;
  650. int _i=0;
  651. _keyword_count=(((T7*)((T7*)a1)))->_count/*4*/;
  652. C->_start_line=(((T818*)C))->_line/*16*/;
  653. C->_start_column=(((T818*)C))->_column/*12*/;
  654. while (!(((_i)==(_keyword_count))||(!(r3same_as((((T818*)C))->_cc/*24*/,/*(IRF4.6item*/((((T7*)((T7*)a1)))->_storage/*0*/)[((_i)+(1))-(1)]/*)*/))))) {
  655. _i=(_i)+(1);
  656. r818next_char(C);
  657. }
  658. /*IF*/if ((_i)==(_keyword_count)) {
  659. {int z1=(((T818*)C))->_cc/*24*/;
  660.  
  661. if(((9<=z1)&&(z1<=10))||(32==z1)||(45==z1)){
  662. R=1;
  663. C->_last_keyword=a1;
  664. r818skip_comments(C);
  665. }
  666.  else 
  667. if(((48<=z1)&&(z1<=57))||((65<=z1)&&(z1<=90))||(95==z1)||((97<=z1)&&(z1<=122))){
  668. while (!((_i)==(0))) {
  669. r818prev_char(C);
  670. _i=(_i)-(1);
  671. }
  672. }
  673.  else{R=1;
  674. C->_last_keyword=a1;
  675. }}
  676. }
  677. else {
  678. while (!((_i)==(0))) {
  679. r818prev_char(C);
  680. _i=(_i)-(1);
  681. }
  682. }
  683. /*FI*/return R;
  684. }
  685. /*No:EIFFEL_PARSER.us_character*/
  686. /*No:EIFFEL_PARSER.us_le*/
  687. /*No:EIFFEL_PARSER.fz_from*/
  688. /*No:EIFFEL_PARSER.last_keyword*/
  689. /*No:EIFFEL_PARSER.fz_unique*/
  690. /*No:EIFFEL_PARSER.fz_loop*/
  691. /*No:EIFFEL_PARSER.em1*/
  692. /*No:EIFFEL_PARSER.fz_do*/
  693. int r818a_unary(T818* C){
  694. int R=0;
  695. /*IF*/if (r818a_keyword(C,((T0*)ms40_473))) {
  696. {T406*n=malloc(sizeof(*n));
  697. *n=M406;
  698. r406make(n,((T0*)ms40_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  699. C->_last_prefix=(T0*)n;
  700. }
  701. R=1;
  702. }
  703.  else if (r818skip1(C,'\53')) {
  704. {T406*n=malloc(sizeof(*n));
  705. *n=M406;
  706. r406make(n,((T0*)ms43_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  707. C->_last_prefix=(T0*)n;
  708. }
  709. R=1;
  710. }
  711.  else if (r818skip1(C,'\55')) {
  712. {T406*n=malloc(sizeof(*n));
  713. *n=M406;
  714. r406make(n,((T0*)ms37_473),r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  715. C->_last_prefix=(T0*)n;
  716. }
  717. R=1;
  718. }
  719. /*FI*/return R;
  720. }
  721. /*No:EIFFEL_PARSER.em2*/
  722. /*No:EIFFEL_PARSER.last_feature_declaration*/
  723. /*No:EIFFEL_PARSER.em3*/
  724. /*No:EIFFEL_PARSER.fz_c_inlinewithoutcurrent*/
  725. /*No:EIFFEL_PARSER.fz_obsolete*/
  726. /*No:EIFFEL_PARSER.em4*/
  727. /*No:EIFFEL_PARSER.fz_se*/
  728. void r818go_back_at(T818* C,int a1,int a2){
  729. C->_line=a1;
  730. C->_column=a2;
  731. C->_current_line=r676item((((T818*)C))->_line/*16*/);
  732. /*IF*/if (((((T818*)C))->_column/*12*/)==(((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_count/*4*/)+(1))) {
  733. C->_cc='\n';
  734. }
  735.  else if (((((T818*)C))->_column/*12*/)==(0)) {
  736. C->_cc='\0';
  737. }
  738. else {
  739. C->_cc=/*(IRF4.6item*/((((T7*)((T7*)((((T818*)C))->_current_line/*20*/))))->_storage/*0*/)[((((T818*)C))->_column/*12*/)-(1)]/*)*/;
  740. }
  741. /*FI*/}
  742. void r818a_ascii_code(T818* C){
  743. int _counter=0;
  744. r818next_char(C);
  745. _counter=0;
  746. C->_last_ascii_code=0;
  747. while (!(((_counter)>(3))||(((((T818*)C))->_cc/*24*/)==('\57')))) {
  748. {int z1=(((T818*)C))->_cc/*24*/;
  749.  
  750. if(((48<=z1)&&(z1<=57))){
  751. C->_last_ascii_code=(((((T818*)C))->_last_ascii_code/*61*/)*(10))+(r3value((((T818*)C))->_cc/*24*/));
  752. }
  753.  else{r818fcp(C,((T0*)ms21_818));
  754. }}
  755. _counter=(_counter)+(1);
  756. r818next_char(C);
  757. }
  758. /*IF*/if ((_counter)==(0)) {
  759. r818fcp(C,((T0*)ms22_818));
  760. }
  761.  else if ((_counter)>(3)) {
  762. r818fcp(C,((T0*)ms23_818));
  763. }
  764. else {
  765. }
  766. /*FI*/}
  767. /*No:EIFFEL_PARSER.fz_as*/
  768. /*No:EIFFEL_PARSER.em5*/
  769. /*No:EIFFEL_PARSER.fz_false*/
  770. /*No:EIFFEL_PARSER.us_bit*/
  771. /*No:EIFFEL_PARSER.em6*/
  772. int r818a_current(T818* C){
  773. int R=0;
  774. /*IF*/if (r511is_current()) {
  775. C->_last_expression=r511to_e_current(((T511*)(oBC818tmp_name)));
  776. R=1;
  777. }
  778. /*FI*/return R;
  779. }
  780. void r818a_parent_list(T818* C,T0* a1,T0* a2){
  781. T0* _list=NULL;
  782. while (!(!(r818a_parent(C)))) {
  783. /*IF*/if ((_list)==((void*)(NULL))) {
  784. _list=se_ma26(1,(((T818*)C))->_last_parent/*149*/);
  785. }
  786. else {
  787. r26add_last(((T26*)_list),(((T818*)C))->_last_parent/*149*/);
  788. }
  789. /*FI*/C->_ok=r818skip1(C,'\73');
  790. /*[IRF3.3set_comment*/((((T877*)(((T877*)((((T818*)C))->_last_parent/*149*/)))))->_comment)=(r818get_comments(C));
  791. /*]*/
  792. }
  793. /*IF*/if (((a2)!=((void*)(NULL)))||((_list)!=((void*)(NULL)))) {
  794. /*IF*/if ((_list)==((void*)(NULL))) {
  795. /*IF*/if (((((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_heading_comment2/*32*/)==((void*)(NULL))) {
  796. /*[IRF3.3set_heading_comment2*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment2)=(a2);
  797. /*]*/
  798. }
  799. else {
  800. r393append(((T393*)((((T605*)((T605*)((((T818*)C))->_last_base_class/*65*/))))->_heading_comment2/*32*/)),a2);
  801. }
  802. /*FI*/}
  803. else {
  804. r605set_parent_list(((T605*)((((T818*)C))->_last_base_class/*65*/)),a1,a2,_list);
  805. }
  806. /*FI*/}
  807. /*FI*/}
  808. /*No:EIFFEL_PARSER.em7*/
  809. /*No:EIFFEL_PARSER.fz_jvm_invokevirtual*/
  810. void r818a_select_list(T818* C){
  811. /*IF*/if (r818a_feature_list(C)) {
  812. r877set_select(((T877*)((((T818*)C))->_last_parent/*149*/)),(((T818*)C))->_last_feature_list/*105*/);
  813. }
  814. /*FI*/}
  815. void r818err_exp(T0* a1,T0* a2){
  816. T0* _msg=NULL;
  817. {T7*n=malloc(sizeof(*n));
  818. *n=M7;
  819. r7make(n,0);
  820. _msg=(T0*)n;
  821. }
  822. r7append(((T7*)_msg),((T0*)ms11_818));
  823. r7append(((T7*)_msg),a2);
  824. r7append(((T7*)_msg),((T0*)ms12_818));
  825. r683add_position(a1);
  826. /*[IRF3.6fatal_error*/{T0* b1=_msg;
  827. r683fatal_error(((T683*)(oBC364eh)),b1);
  828. }/*]*/
  829. }
  830. /*No:EIFFEL_PARSER.em8*/
  831. /*No:EIFFEL_PARSER.last_boolean_constant*/
  832. /*No:EIFFEL_PARSER.em9*/
  833. T0* r818current_position(T818* C){
  834. T0* R=NULL;
  835. {T627*n=malloc(sizeof(*n));
  836. *n=M627;
  837. r627make(n,(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  838. R=(T0*)n;
  839. }
  840. return R;
  841. }
  842. /*No:EIFFEL_PARSER.last_tag_mark*/
  843. /*No:EIFFEL_PARSER.us_boolean*/
  844. /*No:EIFFEL_PARSER.last_feature_name*/
  845. /*No:EIFFEL_PARSER.us_eq*/
  846. int r818a_free_operator(T818* C){
  847. int R=0;
  848. /*IF*/if ((((((((T818*)C))->_cc/*24*/)==('\100'))||(((((T818*)C))->_cc/*24*/)==('\43')))||(((((T818*)C))->_cc/*24*/)==('\174')))||(((((T818*)C))->_cc/*24*/)==('\46'))) {
  849. R=1;
  850. r511initialize(((T511*)(oBC818tmp_name)),(((T818*)C))->_line/*16*/,(((T818*)C))->_column/*12*/);
  851. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  852. r7extend(((T7*)(oBC511tmp_string)),b1);
  853. }/*]*/
  854. r818next_char(C);
  855. while (!((((((((T818*)C))->_cc/*24*/)==('\n'))||(((((T818*)C))->_cc/*24*/)==('\40')))||(((((T818*)C))->_cc/*24*/)==('\11')))||(((((T818*)C))->_cc/*24*/)==('\42')))) {
  856. /*[IRF3.6extend*/{char b1=(((T818*)C))->_cc/*24*/;
  857. r7extend(((T7*)(oBC511tmp_string)),b1);
  858. }/*]*/
  859. r818next_char(C);
  860. }
  861. r818skip_comments(C);
  862. }
  863. /*FI*/return R;
  864. }
  865. /*No:EIFFEL_PARSER.function_type*/
  866. int r818a_then_part(T818* C,T0* a1){
  867. int R=0;
  868. T0* _expression=NULL;
  869. /*IF*/if (r818a_expression(C)) {
  870. R=1;
  871. _expression=X662add_comment((((T818*)C))->_last_expression/*97*/,r818get_comments(C));
  872. /*IF*/if (!(r818a_keyword(C,((T0*)ms46_470)))) {
  873. /*[IRF3.6wcp*/{T818* C1=C;
  874. T0* b1=((T0*)ms127_818);
  875. r818warning(r818current_position(C1),b1);
  876. }/*]*/
  877. }
  878. /*FI*/r530add_if_then(((T530*)a1),_expression,r818a_compound1(C,((T0*)ms128_818)));
  879. }
  880. /*FI*/return R;
  881. }
  882. /*No:EIFFEL_PARSER.us_xor*/
  883. /*No:EIFFEL_PARSER.last_integer_constant*/
  884. /*No:EIFFEL_PARSER.in_ensure*/
  885. /*No:EIFFEL_PARSER.fz_frozen*/
  886. /*No:EIFFEL_PARSER.ms_numbering*/
  887. T0* r818a_clients(T818* C){
  888. T0* R=NULL;
  889. int _state=0;
  890. T0* _list=NULL;
  891. T0* _sp=NULL;
  892. /*IF*/if (r818skip1(C,'\173')) {
  893. {T627*n=malloc(sizeof(*n));
  894. *n=M627;
  895. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  896. _sp=(T0*)n;
  897. }
  898. while (!((_state)>(3))) {
  899. {int z1=_state;
  900.  
  901. if((0==z1)){
  902. /*IF*/if (r818a_base_class_name(C)) {
  903. _list=se_ma901(1,(((T818*)C))->_last_class_name/*89*/);
  904. _state=2;
  905. }
  906.  else if (r818skip1(C,'\175')) {
  907. _state=4;
  908. }
  909.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  910. /*[IRF3.6wcp*/{T818* C1=C;
  911. T0* b1=((T0*)ms145_818);
  912. r818warning(r818current_position(C1),b1);
  913. }/*]*/
  914. C->_ok=r818skip1(C,'\54');
  915. }
  916. else {
  917. _state=3;
  918. }
  919. /*FI*/}
  920.  else 
  921. if((1==z1)){
  922. /*IF*/if (r818a_base_class_name(C)) {
  923. r901add_last(((T901*)_list),(((T818*)C))->_last_class_name/*89*/);
  924. _state=2;
  925. }
  926.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  927. /*[IRF3.6wcp*/{T818* C1=C;
  928. T0* b1=((T0*)ms145_818);
  929. r818warning(r818current_position(C1),b1);
  930. }/*]*/
  931. C->_ok=r818skip1(C,'\54');
  932. }
  933.  else if (((((T818*)C))->_cc/*24*/)==('\175')) {
  934. /*[IRF3.6wcp*/{T818* C1=C;
  935. T0* b1=((T0*)ms56_818);
  936. r818warning(r818current_position(C1),b1);
  937. }/*]*/
  938. C->_ok=r818skip1(C,'\175');
  939. _state=4;
  940. }
  941. else {
  942. _state=3;
  943. }
  944. /*FI*/}
  945.  else 
  946. if((2==z1)){
  947. /*IF*/if (r818skip1(C,'\54')) {
  948. _state=1;
  949. }
  950.  else if (r818skip1(C,'\175')) {
  951. _state=4;
  952. }
  953.  else if (r818a_base_class_name(C)) {
  954. r818warning((((T451*)((T451*)((((T818*)C))->_last_class_name/*89*/))))->_start_position/*4*/,((T0*)ms143_818));
  955. r901add_last(((T901*)_list),(((T818*)C))->_last_class_name/*89*/);
  956. }
  957. else {
  958. _state=3;
  959. }
  960. /*FI*/}
  961.  else{r818fcp(C,((T0*)ms149_818));
  962. _state=4;
  963. }}
  964. }
  965. {T636*n=malloc(sizeof(*n));
  966. *n=M636;
  967. r636make(n,_sp,_list);
  968. R=(T0*)n;
  969. }
  970. }
  971. else {
  972. {T636*n=malloc(sizeof(*n));
  973. *n=M636;
  974. /*[IRF3.1omitted*//*]*/
  975. R=(T0*)n;
  976. }
  977. }
  978. /*FI*/return R;
  979. }
  980. int r818a_when_part(T818* C,T0* a1){
  981. int R=0;
  982. T0* _constant=NULL;
  983. T0* _e_when=NULL;
  984. int _state=0;
  985. /*IF*/if (r818a_keyword(C,((T0*)ms52_470))) {
  986. R=1;
  987. {T843*n=malloc(sizeof(*n));
  988. *n=M843;
  989. r843make(n,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),r818get_comments(C));
  990. _e_when=(T0*)n;
  991. }
  992. while (!((_state)>(3))) {
  993. {int z1=_state;
  994.  
  995. if((0==z1)){
  996. /*IF*/if (r818a_constant(C)) {
  997. _constant=(((T818*)C))->_last_expression/*97*/;
  998. _state=1;
  999. }
  1000.  else if (r818a_keyword(C,((T0*)ms46_470))) {
  1001. /*IF*/if ((_constant)!=((void*)(NULL))) {
  1002. r843add_value(((T843*)_e_when),_constant);
  1003. }
  1004. /*FI*//*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms132_818)));
  1005. /*]*/
  1006. r270add_when(((T270*)a1),_e_when);
  1007. _state=4;
  1008. }
  1009.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  1010. /*[IRF3.6wcp*/{T818* C1=C;
  1011. T0* b1=((T0*)ms145_818);
  1012. r818warning(r818current_position(C1),b1);
  1013. }/*]*/
  1014. C->_ok=r818skip1(C,'\54');
  1015. }
  1016. else {
  1017. r818fcp(C,((T0*)ms142_818));
  1018. _state=4;
  1019. }
  1020. /*FI*/}
  1021.  else 
  1022. if((1==z1)){
  1023. /*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
  1024. /*IF*/if ((_constant)!=((void*)(NULL))) {
  1025. r843add_value(((T843*)_e_when),_constant);
  1026. }
  1027. /*FI*//*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms133_818)));
  1028. /*]*/
  1029. r270add_when(((T270*)a1),_e_when);
  1030. _state=4;
  1031. }
  1032.  else if (r818skip2(C,'\56','\56')) {
  1033. _state=2;
  1034. }
  1035.  else if (r818skip1(C,'\54')) {
  1036. r843add_value(((T843*)_e_when),_constant);
  1037. _constant=NULL;
  1038. _state=0;
  1039. }
  1040. else {
  1041. r818fcp(C,((T0*)ms142_818));
  1042. _state=4;
  1043. }
  1044. /*FI*/}
  1045.  else 
  1046. if((2==z1)){
  1047. /*IF*/if (r818a_constant(C)) {
  1048. r843add_slice(((T843*)_e_when),_constant,(((T818*)C))->_last_expression/*97*/);
  1049. _constant=NULL;
  1050. _state=3;
  1051. }
  1052. else {
  1053. r818fcp(C,((T0*)ms142_818));
  1054. _state=4;
  1055. }
  1056. /*FI*/}
  1057.  else{/*IF*/if (r818skip1(C,'\54')) {
  1058. _state=0;
  1059. }
  1060.  else if (r818a_keyword(C,((T0*)ms46_470))) {
  1061. /*[IRF3.3set_compound*/((((T843*)(((T843*)_e_when))))->_compound)=(r818a_compound1(C,((T0*)ms134_818)));
  1062. /*]*/
  1063. r270add_when(((T270*)a1),_e_when);
  1064. _state=4;
  1065. }
  1066.  else if (r818a_constant(C)) {
  1067. _constant=(((T818*)C))->_last_expression/*97*/;
  1068. r818warning(r511start_position(((T511*)(oBC818tmp_name))),((T0*)ms143_818));
  1069. _state=1;
  1070. }
  1071. else {
  1072. r818fcp(C,((T0*)ms142_818));
  1073. _state=4;
  1074. }
  1075. /*FI*/}}
  1076. }
  1077. }
  1078. /*FI*/return R;
  1079. }
  1080. int r818a_feature_list(T818* C){
  1081. int R=0;
  1082. int _state=0;
  1083. C->_last_feature_list=NULL;
  1084. while (!((_state)>=(3))) {
  1085. {int z1=_state;
  1086.  
  1087. if((0==z1)){
  1088. /*IF*/if (r818a_feature_name(C)) {
  1089. C->_last_feature_list=se_ma855(1,(((T818*)C))->_last_feature_name/*109*/);
  1090. R=1;
  1091. _state=1;
  1092. }
  1093.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  1094. /*[IRF3.6wcp*/{T818* C1=C;
  1095. T0* b1=((T0*)ms145_818);
  1096. r818warning(r818current_position(C1),b1);
  1097. }/*]*/
  1098. C->_ok=r818skip1(C,'\54');
  1099. }
  1100. else {
  1101. _state=3;
  1102. }
  1103. /*FI*/}
  1104.  else 
  1105. if((1==z1)){
  1106. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\54')) {
  1107. C->_ok=r818skip1(C,'\54');
  1108. _state=2;
  1109. }
  1110.  else if (r818a_feature_name(C)) {
  1111. r818warning(X776start_position((((T818*)C))->_last_feature_name/*109*/),((T0*)ms143_818));
  1112. r855add_last(((T855*)((((T818*)C))->_last_feature_list/*105*/)),(((T818*)C))->_last_feature_name/*109*/);
  1113. }
  1114. else {
  1115. _state=3;
  1116. }
  1117. /*FI*/}
  1118.  else {/*IF*/if (r818a_feature_name(C)) {
  1119. r855add_last(((T855*)((((T818*)C))->_last_feature_list/*105*/)),(((T818*)C))->_last_feature_name/*109*/);
  1120. _state=1;
  1121. }
  1122.  else if (((((T818*)C))->_cc/*24*/)==('\54')) {
  1123. /*[IRF3.6wcp*/{T818* C1=C;
  1124. T0* b1=((T0*)ms150_818);
  1125. r818warning(r818current_position(C1),b1);
  1126. }/*]*/
  1127. C->_ok=r818skip1(C,'\54');
  1128. }
  1129. else {
  1130. /*[IRF3.6ecp*/{T818* C1=C;
  1131. T0* b1=((T0*)ms140_818);
  1132. r818error(r818current_position(C1),b1);
  1133. }/*]*/
  1134. _state=3;
  1135. }
  1136. /*FI*/}}
  1137. }
  1138. return R;
  1139. }
  1140. int r818a_instruction(T818* C){
  1141. int R=0;
  1142. R=(((((((r818a_check(C))||(r818a_debug(C)))||(r818a_conditional(C)))||(r818a_retry(C)))||(r818a_inspect(C)))||(r818a_loop(C)))||(r818a_creation(C)))||(r818a_assignment_or_call(C));
  1143. return R;
  1144. }
  1145. /*No:EIFFEL_PARSER.fz_is*/
  1146. /*No:EIFFEL_PARSER.fz_ensure*/
  1147. /*No:EIFFEL_PARSER.fz_indexing*/
  1148. /*No:EIFFEL_PARSER.us_not*/
  1149. int r818a_parent(T818* C){
  1150. int R=0;
  1151. /*IF*/if (r818a_class_type(C)) {
  1152. R=1;
  1153. {T877*n=malloc(sizeof(*n));
  1154. *n=M877;
  1155. r877make(n,(((T818*)C))->_last_class_type/*93*/);
  1156. C->_last_parent=(T0*)n;
  1157. }
  1158. /*IF*/if (r818a_keyword(C,((T0*)ms39_470))) {
  1159. r818a_rename_list(C);
  1160. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
  1161. /*[IRF3.6wcp*/{T818* C1=C;
  1162. T0* b1=((T0*)ms108_818);
  1163. r818warning(r818current_position(C1),b1);
  1164. }/*]*/
  1165. C->_ok=r818skip1(C,'\73');
  1166. }
  1167. /*FI*/}
  1168. /*FI*/r818a_new_export_list(C);
  1169. /*IF*/if (r818a_keyword(C,((T0*)ms48_470))) {
  1170. r818a_undefine_list(C);
  1171. }
  1172. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms38_470))) {
  1173. r818a_redefine_list(C);
  1174. }
  1175. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms43_470))) {
  1176. r818a_select_list(C);
  1177. }
  1178. /*FI*//*IF*/if (((((r818a_keyword(C,((T0*)ms39_470)))||(r818a_keyword(C,((T0*)ms15_470))))||(r818a_keyword(C,((T0*)ms48_470))))||(r818a_keyword(C,((T0*)ms38_470))))||(r818a_keyword(C,((T0*)ms43_470)))) {
  1179. r683add_position(r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  1180. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms109_818);
  1181. r683fatal_error(((T683*)(oBC364eh)),b1);
  1182. }/*]*/
  1183. }
  1184. /*FI*/C->_ok=r818a_keyword(C,((T0*)ms12_470));
  1185. }
  1186. /*FI*/return R;
  1187. }
  1188. /*No:EIFFEL_PARSER.us_muls*/
  1189. /*No:EIFFEL_PARSER.last_ascii_code*/
  1190. /*No:EIFFEL_PARSER.fz_c_inlinewithcurrent*/
  1191. int r818a_prefix(T818* C){
  1192. int R=0;
  1193. /*IF*/if (r818a_keyword(C,((T0*)ms37_470))) {
  1194. R=1;
  1195. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\42')) {
  1196. r818next_char(C);
  1197. }
  1198. else {
  1199. /*[IRF3.6wcp*/{T818* C1=C;
  1200. T0* b1=((T0*)ms110_818);
  1201. r818warning(r818current_position(C1),b1);
  1202. }/*]*/
  1203. }
  1204. /*FI*//*IF*/if (r818a_unary(C)) {
  1205. }
  1206.  else if (r818a_free_operator(C)) {
  1207. C->_last_prefix=r511to_prefix_name(((T511*)(oBC818tmp_name)));
  1208. }
  1209. else {
  1210. r818fcp(C,((T0*)ms111_818));
  1211. }
  1212. /*FI*//*IF*/if (!(r818skip1(C,'\42'))) {
  1213. /*[IRF3.6wcp*/{T818* C1=C;
  1214. T0* b1=((T0*)ms112_818);
  1215. r818warning(r818current_position(C1),b1);
  1216. }/*]*/
  1217. }
  1218. /*FI*/}
  1219. /*FI*/return R;
  1220. }
  1221. void r818error(T0* a1,T0* a2){
  1222. r683add_position(a1);
  1223. r683error(((T683*)(oBC364eh)),a2);
  1224. }
  1225. /*No:EIFFEL_PARSER.us_gt*/
  1226. /*No:EIFFEL_PARSER.fz_until*/
  1227. int r818a_e0(T818* C){
  1228. int R=0;
  1229. R=r818a_e1(C);
  1230. r818a_r1(C,(((T818*)C))->_last_expression/*97*/);
  1231. return R;
  1232. }
  1233. void r818a_class_declaration(T818* C){
  1234. T0* _al=NULL;
  1235. T0* _hc=NULL;
  1236. T0* _sp=NULL;
  1237. r818a_indexing(C);
  1238. /*IF*/if (r818a_keyword(C,((T0*)ms8_470))) {
  1239. r605set_is_deferred(((T605*)((((T818*)C))->_last_base_class/*65*/)));
  1240. }
  1241. /*FI*//*IF*/if (r818a_keyword(C,((T0*)ms14_470))) {
  1242. r605set_is_expanded(((T605*)((((T818*)C))->_last_base_class/*65*/)));
  1243. /*IF*/if (r818a_keyword(C,((T0*)ms8_470))) {
  1244. r605set_is_deferred(((T605*)((((T818*)C))->_last_base_class/*65*/)));
  1245. }
  1246. /*FI*/}
  1247. /*FI*//*[IRF3.3set_heading_comment1*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment1)=(r818get_comments(C));
  1248. /*]*/
  1249. /*IF*/if (!(r818a_keyword(C,((T0*)ms5_470)))) {
  1250. r818fcp(C,((T0*)ms50_818));
  1251. }
  1252. /*FI*/r818a_base_class_name1(C);
  1253. r818a_formal_generic_list(C);
  1254. /*IF*/if (r818a_keyword(C,((T0*)ms33_470))) {
  1255. /*IF*/if (r818a_manifest_string(C)) {
  1256. /*[IRF3.3set_obsolete_type_string*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_obsolete_type_string)=((((T818*)C))->_last_manifest_string/*145*/);
  1257. /*]*/
  1258. }
  1259. else {
  1260. r818fcp(C,((T0*)ms51_818));
  1261. }
  1262. /*FI*/}
  1263. /*FI*//*[IRF3.3set_heading_comment2*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_heading_comment2)=(r818get_comments(C));
  1264. /*]*/
  1265. /*IF*/if (r818a_keyword(C,((T0*)ms24_470))) {
  1266. r818a_parent_list(C,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/),r818get_comments(C));
  1267. }
  1268. /*FI*/while (!(!(r818a_keyword(C,((T0*)ms6_470))))) {
  1269. r818a_creation_clause(C,r818pos((((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/));
  1270. }
  1271. while (!(!(r818a_keyword(C,((T0*)ms18_470))))) {
  1272. r818a_feature_clause(C);
  1273. }
  1274. /*IF*/if (r818a_keyword(C,((T0*)ms26_470))) {
  1275. {T627*n=malloc(sizeof(*n));
  1276. *n=M627;
  1277. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1278. _sp=(T0*)n;
  1279. }
  1280. _hc=r818get_comments(C);
  1281. _al=r818a_assertion(C);
  1282. r605set_invariant(((T605*)((((T818*)C))->_last_base_class/*65*/)),_sp,_hc,_al);
  1283. }
  1284. /*FI*//*IF*/if ((r818a_keyword(C,((T0*)ms12_470)))||(((((T818*)C))->_last_keyword/*113*/)==((void*)(((T0*)ms12_470))))) {
  1285. /*IF*/if (((((T818*)C))->_cc/*24*/)==('\73')) {
  1286. /*[IRF3.6wcp*/{T818* C1=C;
  1287. T0* b1=((T0*)ms68_470);
  1288. r818warning(r818current_position(C1),b1);
  1289. }/*]*/
  1290. C->_ok=r818skip1(C,'\73');
  1291. }
  1292. /*FI*//*[IRF3.3set_end_comment*/((((T605*)(((T605*)((((T818*)C))->_last_base_class/*65*/)))))->_end_comment)=(r818get_comments(C));
  1293. /*]*/
  1294. /*IF*/if (((((T818*)C))->_cc/*24*/)!=('\0')) {
  1295. r818fcp(C,((T0*)ms52_818));
  1296. }
  1297. /*FI*/}
  1298. else {
  1299. r818fcp(C,((T0*)ms53_818));
  1300. }
  1301. /*FI*/}
  1302. int r818skip1(T818* C,char a1){
  1303. int R=0;
  1304. /*IF*/if ((a1)==((((T818*)C))->_cc/*24*/)) {
  1305. C->_start_line=(((T818*)C))->_line/*16*/;
  1306. C->_start_column=(((T818*)C))->_column/*12*/;
  1307. R=1;
  1308. r818next_char(C);
  1309. r818skip_comments(C);
  1310. }
  1311. /*FI*/return R;
  1312. }
  1313. /*No:EIFFEL_PARSER.us_plus*/
  1314. void r818a_r1(T818* C,T0* a1){
  1315. T0* _sp=NULL;
  1316. T0* _infix_implies=NULL;
  1317. /*IF*/if (r818a_keyword(C,((T0*)ms34_473))) {
  1318. {T627*n=malloc(sizeof(*n));
  1319. *n=M627;
  1320. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1321. _sp=(T0*)n;
  1322. }
  1323. /*IF*/if (r818a_e1(C)) {
  1324. {T90*n=malloc(sizeof(*n));
  1325. *n=M90;
  1326. r90make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1327. _infix_implies=(T0*)n;
  1328. }
  1329. r818a_r1(C,_infix_implies);
  1330. }
  1331. else {
  1332. r818error(_sp,((T0*)ms119_818));
  1333. }
  1334. /*FI*/}
  1335. else {
  1336. C->_last_expression=a1;
  1337. }
  1338. /*FI*/}
  1339. int r818a_e1(T818* C){
  1340. int R=0;
  1341. R=r818a_e2(C);
  1342. r818a_r2(C,(((T818*)C))->_last_expression/*97*/);
  1343. return R;
  1344. }
  1345. /*No:EIFFEL_PARSER.last_type_formal_generic*/
  1346. /*No:EIFFEL_PARSER.em10*/
  1347. /*No:EIFFEL_PARSER.em20*/
  1348. int r818skip2(T818* C,char a1,char a2){
  1349. int R=0;
  1350. /*IF*/if ((a1)==((((T818*)C))->_cc/*24*/)) {
  1351. C->_start_line=(((T818*)C))->_line/*16*/;
  1352. C->_start_column=(((T818*)C))->_column/*12*/;
  1353. r818next_char(C);
  1354. /*IF*/if ((a2)==((((T818*)C))->_cc/*24*/)) {
  1355. R=1;
  1356. r818next_char(C);
  1357. r818skip_comments(C);
  1358. }
  1359. else {
  1360. r818prev_char(C);
  1361. }
  1362. /*FI*/}
  1363. /*FI*/return R;
  1364. }
  1365. void r818a_r2(T818* C,T0* a1){
  1366. T0* _sp=NULL;
  1367. T0* _infix_xor=NULL;
  1368. T0* _infix_or=NULL;
  1369. T0* _infix_or_else=NULL;
  1370. /*IF*/if (r818a_keyword(C,((T0*)ms41_473))) {
  1371. {T627*n=malloc(sizeof(*n));
  1372. *n=M627;
  1373. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1374. _sp=(T0*)n;
  1375. }
  1376. /*IF*/if (r818a_keyword(C,((T0*)ms10_470))) {
  1377. /*IF*/if (r818a_e2(C)) {
  1378. {T278*n=malloc(sizeof(*n));
  1379. *n=M278;
  1380. r278make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1381. _infix_or_else=(T0*)n;
  1382. }
  1383. r818a_r2(C,_infix_or_else);
  1384. }
  1385. else {
  1386. r818err_exp(_sp,((T0*)ms42_473));
  1387. }
  1388. /*FI*/}
  1389. else {
  1390. /*IF*/if (r818a_e2(C)) {
  1391. {T121*n=malloc(sizeof(*n));
  1392. *n=M121;
  1393. r121make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1394. _infix_or=(T0*)n;
  1395. }
  1396. r818a_r2(C,_infix_or);
  1397. }
  1398. else {
  1399. r818err_exp(_sp,((T0*)ms41_473));
  1400. }
  1401. /*FI*/}
  1402. /*FI*/}
  1403.  else if (r818a_keyword(C,((T0*)ms50_473))) {
  1404. {T627*n=malloc(sizeof(*n));
  1405. *n=M627;
  1406. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1407. _sp=(T0*)n;
  1408. }
  1409. /*IF*/if (r818a_e2(C)) {
  1410. {T760*n=malloc(sizeof(*n));
  1411. *n=M760;
  1412. r760make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1413. _infix_xor=(T0*)n;
  1414. }
  1415. r818a_r2(C,_infix_xor);
  1416. }
  1417. else {
  1418. r818err_exp(_sp,((T0*)ms50_473));
  1419. }
  1420. /*FI*/}
  1421. else {
  1422. C->_last_expression=a1;
  1423. }
  1424. /*FI*/}
  1425. int r818a_e2(T818* C){
  1426. int R=0;
  1427. R=r818a_e3(C);
  1428. r818a_r3(C,(((T818*)C))->_last_expression/*97*/);
  1429. return R;
  1430. }
  1431. /*No:EIFFEL_PARSER.em11*/
  1432. /*No:EIFFEL_PARSER.fz_expanded*/
  1433. void r818a_r3(T818* C,T0* a1){
  1434. T0* _sp=NULL;
  1435. T0* _infix_and=NULL;
  1436. T0* _infix_and_then=NULL;
  1437. /*IF*/if (r818a_keyword(C,((T0*)ms27_473))) {
  1438. {T627*n=malloc(sizeof(*n));
  1439. *n=M627;
  1440. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1441. _sp=(T0*)n;
  1442. }
  1443. /*IF*/if (r818a_keyword(C,((T0*)ms46_470))) {
  1444. /*IF*/if (r818a_e3(C)) {
  1445. {T655*n=malloc(sizeof(*n));
  1446. *n=M655;
  1447. r655make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1448. _infix_and_then=(T0*)n;
  1449. }
  1450. r818a_r3(C,_infix_and_then);
  1451. }
  1452. else {
  1453. r818err_exp(_sp,((T0*)ms28_473));
  1454. }
  1455. /*FI*/}
  1456. else {
  1457. /*IF*/if (r818a_e3(C)) {
  1458. {T313*n=malloc(sizeof(*n));
  1459. *n=M313;
  1460. r313make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1461. _infix_and=(T0*)n;
  1462. }
  1463. r818a_r3(C,_infix_and);
  1464. }
  1465. else {
  1466. r818err_exp(_sp,((T0*)ms27_473));
  1467. }
  1468. /*FI*/}
  1469. /*FI*/}
  1470. else {
  1471. C->_last_expression=a1;
  1472. }
  1473. /*FI*/}
  1474. int r818a_e3(T818* C){
  1475. int R=0;
  1476. R=r818a_e4(C);
  1477. r818a_r4(C,(((T818*)C))->_last_expression/*97*/);
  1478. return R;
  1479. }
  1480. /*No:EIFFEL_PARSER.fz_class*/
  1481. /*No:EIFFEL_PARSER.last_base_class*/
  1482. /*No:EIFFEL_PARSER.fz_infix*/
  1483. /*No:EIFFEL_PARSER.em12*/
  1484. T0*oBC818forbidden_class=NULL;
  1485. /*No:EIFFEL_PARSER.us_lt*/
  1486. /*No:EIFFEL_PARSER.us_or*/
  1487. void r818a_r4(T818* C,T0* a1){
  1488. T0* _sp=NULL;
  1489. T0* _infix_gt=NULL;
  1490. T0* _infix_ge=NULL;
  1491. T0* _infix_lt=NULL;
  1492. T0* _infix_le=NULL;
  1493. T0* _infix_neq=NULL;
  1494. T0* _infix_eq=NULL;
  1495. /*IF*/if (r818skip1(C,'\75')) {
  1496. {T627*n=malloc(sizeof(*n));
  1497. *n=M627;
  1498. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1499. _sp=(T0*)n;
  1500. }
  1501. /*IF*/if (r818a_e4(C)) {
  1502. {T999*n=malloc(sizeof(*n));
  1503. *n=M999;
  1504. r999make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1505. _infix_eq=(T0*)n;
  1506. }
  1507. r818a_r4(C,_infix_eq);
  1508. }
  1509. else {
  1510. r818err_exp(_sp,((T0*)ms31_473));
  1511. }
  1512. /*FI*/}
  1513.  else if (r818skip2(C,'\57','\75')) {
  1514. {T627*n=malloc(sizeof(*n));
  1515. *n=M627;
  1516. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1517. _sp=(T0*)n;
  1518. }
  1519. /*IF*/if (r818a_e4(C)) {
  1520. {T517*n=malloc(sizeof(*n));
  1521. *n=M517;
  1522. r517make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1523. _infix_neq=(T0*)n;
  1524. }
  1525. r818a_r4(C,_infix_neq);
  1526. }
  1527. else {
  1528. r818err_exp(_sp,((T0*)ms39_473));
  1529. }
  1530. /*FI*/}
  1531.  else if (r818skip2(C,'\74','\75')) {
  1532. {T627*n=malloc(sizeof(*n));
  1533. *n=M627;
  1534. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1535. _sp=(T0*)n;
  1536. }
  1537. /*IF*/if (r818a_e4(C)) {
  1538. {T932*n=malloc(sizeof(*n));
  1539. *n=M932;
  1540. r932make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1541. _infix_le=(T0*)n;
  1542. }
  1543. r818a_r4(C,_infix_le);
  1544. }
  1545. else {
  1546. r818err_exp(_sp,((T0*)ms35_473));
  1547. }
  1548. /*FI*/}
  1549.  else if (r818skip2(C,'\76','\75')) {
  1550. {T627*n=malloc(sizeof(*n));
  1551. *n=M627;
  1552. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1553. _sp=(T0*)n;
  1554. }
  1555. /*IF*/if (r818a_e4(C)) {
  1556. {T890*n=malloc(sizeof(*n));
  1557. *n=M890;
  1558. r890make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1559. _infix_ge=(T0*)n;
  1560. }
  1561. r818a_r4(C,_infix_ge);
  1562. }
  1563. else {
  1564. r818err_exp(_sp,((T0*)ms32_473));
  1565. }
  1566. /*FI*/}
  1567.  else if (r818skip1(C,'\74')) {
  1568. {T627*n=malloc(sizeof(*n));
  1569. *n=M627;
  1570. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1571. _sp=(T0*)n;
  1572. }
  1573. /*IF*/if (r818a_e4(C)) {
  1574. {T112*n=malloc(sizeof(*n));
  1575. *n=M112;
  1576. r112make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1577. _infix_lt=(T0*)n;
  1578. }
  1579. r818a_r4(C,_infix_lt);
  1580. }
  1581. else {
  1582. r818err_exp(_sp,((T0*)ms36_473));
  1583. }
  1584. /*FI*/}
  1585.  else if (r818skip1unless2(C,'\76','\76')) {
  1586. {T627*n=malloc(sizeof(*n));
  1587. *n=M627;
  1588. r627make(n,(((T818*)C))->_start_line/*169*/,(((T818*)C))->_start_column/*165*/);
  1589. _sp=(T0*)n;
  1590. }
  1591. /*IF*/if (r818a_e4(C)) {
  1592. {T57*n=malloc(sizeof(*n));
  1593. *n=M57;
  1594. r57make(n,a1,_sp,(((T818*)C))->_last_expression/*97*/);
  1595. _infix_gt=(T0*)n;
  1596. }
  1597. r818a_r4(C,_infix_gt);
  1598. }
  1599. else {
  1600. r818err_exp(_sp,((T0*)ms33_473));
  1601. }
  1602. /*FI*/}
  1603. else {
  1604. C->_last_expression=a1;
  1605. }
  1606. /*FI*/}
  1607. int r818a_e4(T818* C){
  1608. int R=0;
  1609. R=r818a_e5(C);
  1610. r818a_r5(C,(((T818*)C))->_last_expression/*97*/);
  1611. return R;
  1612. }
  1613. /*No:EIFFEL_PARSER.us_any*/
  1614. /*No:EIFFEL_PARSER.em13*/
  1615. /*No:EIFFEL_PARSER.current_class_name*/
  1616. /*No:EIFFEL_PARSER.fz_strip*/
  1617. /*No:SMALL_EIFFEL.dos_system*/
  1618. /*No:SMALL_EIFFEL.fz_system_se*/
  1619. /*No:SMALL_EIFFEL.fz_sys*/
  1620. T0*oBC364tmp_file_read=NULL;
  1621. int fBC604loading_path=0;
  1622. T0*oBC604loading_path=NULL;
  1623. T0* r604loading_path(T604* C){
  1624. if (fBC604loading_path==0){
  1625. T0* R=NULL;
  1626. T0* _file=NULL;
  1627. T0* _path=NULL;
  1628. fBC604loading_path=1;
  1629. {T52*n=malloc(sizeof(*n));
  1630. *n=M52;
  1631. r52make(n,1,10);
  1632. R=(T0*)n;
  1633. }
  1634. r52clear(((T52*)R));
  1635. {T675*n=malloc(sizeof(*n));
  1636. *n=M675;
  1637. r675connect_to(n,((T0*)ms2_604));
  1638. _file=(T0*)n;
  1639. }
  1640. /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)_file)))->_path/*4*/)!=(NULL)/*)*/) {
  1641. while (!(r675end_of_input(((T675*)_file)))) {
  1642. r675read_line(((T675*)_file));
  1643. r52add_last(((T52*)R),r7twin(((T7*)(oBC762last_string))));
  1644. }
  1645. r675disconnect(((T675*)_file));
  1646. }
  1647. /*FI*/_path=r7twin(((T7*)(r604small_eiffel_directory(C))));
  1648. r604add_directory(C,_path,((T0*)ms126_470));
  1649. r7append(((T7*)_path),((T0*)ms3_604));
  1650. r7append(((T7*)_path),r604system_name(C));
  1651. r675connect_to(((T675*)_file),_path);
  1652. /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)_file)))->_path/*4*/)!=(NULL)/*)*/) {
  1653. while (!(r675end_of_input(((T675*)_file)))) {
  1654. r675read_line(((T675*)_file));
  1655. r52add_last(((T52*)R),r7twin(((T7*)(oBC762last_string))));
  1656. }
  1657. r675disconnect(((T675*)_file));
  1658. }
  1659. else {
  1660. r306w_put_string(((T0*)ms4_604));
  1661. r306w_put_string(_path);
  1662. r306w_put_string(((T0*)ms5_604));
  1663. }
  1664. /*FI*/oBC604loading_path=R;}
  1665. return oBC604loading_path;}
  1666. /*No:SMALL_EIFFEL.unix_system*/
  1667. int r604re_load_class(T604* C,T0* a1){
  1668. int R=0;
  1669. T0* _new_class=NULL;
  1670. T0* _name=NULL;
  1671. _name=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/;
  1672. r718remove(((T718*)(oBC604base_class_dictionary)),_name);
  1673. _new_class=r604load_class(C,_name);
  1674. R=(_new_class)!=((void*)(NULL));
  1675. return R;
  1676. }
  1677. /*No:SMALL_EIFFEL.exit_failure_code*/
  1678. /*No:SMALL_EIFFEL.vms_system*/
  1679. T0*oBC604run_class_dictionary=NULL;
  1680. int fBC364small_eiffel_directory=0;
  1681. T0*oBC364small_eiffel_directory=NULL;
  1682. T0* r604small_eiffel_directory(T604* C){
  1683. if (fBC364small_eiffel_directory==0){
  1684. T0* R=NULL;
  1685. char _slash=0;
  1686. int _i=0;
  1687. fBC364small_eiffel_directory=1;
  1688. R=r604get_environment_variable(C,((T0*)ms121_470));
  1689. /*IF*/if ((R)==((void*)(NULL))) {
  1690. R=r7twin(((T7*)(((T0*)ms121_470))));
  1691. r7to_upper(((T7*)R));
  1692. R=r604get_environment_variable(C,R);
  1693. /*IF*/if ((R)!=((void*)(NULL))) {
  1694. r7to_upper(((T7*)(((T0*)ms121_470))));
  1695. }
  1696. /*FI*/}
  1697. /*FI*//*IF*/if ((R)==((void*)(NULL))) {
  1698. R=((T0*)ms1_364);
  1699. }
  1700. /*FI*/_i=(((T7*)((T7*)R)))->_count/*4*/;
  1701. while (!((_i)<(0))) {
  1702. _slash=/*(IRF4.6item*/((((T7*)((T7*)R)))->_storage/*0*/)[(_i)-(1)]/*)*/;
  1703. /*IF*/if ((r3is_letter(_slash))||(r3is_digit(_slash))) {
  1704. _i=(_i)-(1);
  1705. }
  1706. else {
  1707. _i=-(1);
  1708. }
  1709. /*FI*/}
  1710. /*IF*/if ((_i)==(0)) {
  1711. r7extend(((T7*)R),'\57');
  1712. }
  1713.  else if (!((r7last(((T7*)R)))==(_slash))) {
  1714. r7extend(((T7*)R),_slash);
  1715. }
  1716. /*FI*/oBC364small_eiffel_directory=R;}
  1717. return oBC364small_eiffel_directory;}
  1718. T0*oBC604stack_rf=NULL;
  1719. /*No:SMALL_EIFFEL.amiga_system*/
  1720. /*No:SMALL_EIFFEL.make*/
  1721. /*No:SMALL_EIFFEL.last_unique*/
  1722. T0*oBC604tmp_tail=NULL;
  1723. int fBC604tmp_class_name=0;
  1724. T0*oBC604tmp_class_name=NULL;
  1725. T0* r604tmp_class_name(void){
  1726. if (fBC604tmp_class_name==0){
  1727. T0* R=NULL;
  1728. fBC604tmp_class_name=1;
  1729. {T451*n=malloc(sizeof(*n));
  1730. *n=M451;
  1731. r451make(n,((T0*)ms1_473),NULL);
  1732. R=(T0*)n;
  1733. }
  1734. oBC604tmp_class_name=R;}
  1735. return oBC604tmp_class_name;}
  1736. void r604add_class(T604* C,T0* a1){
  1737. r718put(((T718*)(oBC604base_class_dictionary)),a1,(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/);
  1738. r604incr_magic_count(C);
  1739. }
  1740. void r604push(T604* C,T0* a1){
  1741. C->_top=((((T604*)C))->_top/*12*/)+(1);
  1742. r477force(((T477*)(oBC604stack_rf)),a1,(((T604*)C))->_top/*12*/);
  1743. }
  1744. int r604next_unique(T604* C){
  1745. int R=0;
  1746. /*IF*/if (((((T604*)C))->_last_unique/*16*/)<(1000)) {
  1747. C->_last_unique=1000;
  1748. }
  1749. /*FI*/C->_last_unique=((((T604*)C))->_last_unique/*16*/)+(1);
  1750. R=(((T604*)C))->_last_unique/*16*/;
  1751. return R;
  1752. }
  1753. T0* r604top_rf(T604* C){
  1754. T0* R=NULL;
  1755. R=r477item(((T477*)(oBC604stack_rf)),(((T604*)C))->_top/*12*/);
  1756. return R;
  1757. }
  1758. void r604add_directory(T604* C,T0* a1,T0* a2){
  1759. /*IF*/if ((((T0*)ms17_364))==((void*)(r604system_name(C)))) {
  1760. r7set_last(((T7*)a1),'\57');
  1761. r7append(((T7*)a1),a2);
  1762. r7set_last(((T7*)a1),'\57');
  1763. }
  1764.  else if ((((T0*)ms19_364))==((void*)(r604system_name(C)))) {
  1765. r7set_last(((T7*)a1),'\134');
  1766. r7append(((T7*)a1),a2);
  1767. r7set_last(((T7*)a1),'\134');
  1768. }
  1769.  else if ((((T0*)ms15_364))==((void*)(r604system_name(C)))) {
  1770. r7set_last(((T7*)a1),'\72');
  1771. r7append(((T7*)a1),a2);
  1772. r7set_last(((T7*)a1),'\72');
  1773. }
  1774.  else if ((((T0*)ms14_364))==((void*)(r604system_name(C)))) {
  1775. r7set_last(((T7*)a1),'\134');
  1776. r7append(((T7*)a1),a2);
  1777. r7set_last(((T7*)a1),'\134');
  1778. }
  1779.  else if ((((T0*)ms16_364))==((void*)(r604system_name(C)))) {
  1780. r7set_last(((T7*)a1),'\134');
  1781. r7append(((T7*)a1),a2);
  1782. r7set_last(((T7*)a1),'\134');
  1783. }
  1784.  else if ((((T0*)ms13_364))==((void*)(r604system_name(C)))) {
  1785. r7set_last(((T7*)a1),'\57');
  1786. r7append(((T7*)a1),a2);
  1787. r7set_last(((T7*)a1),'\57');
  1788. }
  1789.  else if ((((T0*)ms18_364))==((void*)(r604system_name(C)))) {
  1790. r7set_last(((T7*)a1),'\135');
  1791. r7remove_last(((T7*)a1),1);
  1792. r7set_last(((T7*)a1),'\56');
  1793. r7append(((T7*)a1),a2);
  1794. r7set_last(((T7*)a1),'\135');
  1795. }
  1796. /*FI*/}
  1797. T0*oBC604parser_buffer_path=NULL;
  1798. /*No:SMALL_EIFFEL.windows_system*/
  1799. T0* r604get_environment_variable(T604* C,T0* a1){
  1800. T0* R=NULL;
  1801. void* _p=0;
  1802. _p=r7to_external(((T7*)a1));
  1803. R=(NULL==(_p=getenv((char*)_p)))?NULL:((T0*)e2s((char*)_p));
  1804. return R;
  1805. }
  1806. /*No:SMALL_EIFFEL.short_flag*/
  1807. /*No:SMALL_EIFFEL.fz_03*/
  1808. T0* r604get_class(T0* a1){
  1809. T0* R=NULL;
  1810. /*IF*/if (r718has(((T718*)(oBC604base_class_dictionary)),a1)) {
  1811. R=r718at(((T718*)(oBC604base_class_dictionary)),a1);
  1812. }
  1813. else {
  1814. r451make(((T451*)(r604tmp_class_name())),a1,NULL);
  1815. R=r451base_class(((T451*)(r604tmp_class_name())));
  1816. }
  1817. /*FI*/return R;
  1818. }
  1819. T0*oBC364system_list=NULL;
  1820. int fBC364system_name=0;
  1821. T0*oBC364system_name=NULL;
  1822. T0* r604system_name(T604* C){
  1823. if (fBC364system_name==0){
  1824. T0* R=NULL;
  1825. int _i=0;
  1826. fBC364system_name=1;
  1827. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  1828. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\57')) {
  1829. r7set_last(((T7*)(oBC364tmp_path)),'\57');
  1830. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1831. r7extend(((T7*)(oBC364tmp_path)),'\57');
  1832. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1833. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1834. }
  1835. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1836. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  1837. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\134')) {
  1838. r7set_last(((T7*)(oBC364tmp_path)),'\134');
  1839. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1840. r7extend(((T7*)(oBC364tmp_path)),'\134');
  1841. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1842. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1843. }
  1844. /*FI*/}
  1845. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1846. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  1847. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\72')) {
  1848. r7set_last(((T7*)(oBC364tmp_path)),'\72');
  1849. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1850. r7extend(((T7*)(oBC364tmp_path)),'\72');
  1851. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1852. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1853. }
  1854. /*FI*/}
  1855. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1856. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  1857. /*IF*/if (r7has(((T7*)(oBC364tmp_path)),'\135')) {
  1858. r7set_last(((T7*)(oBC364tmp_path)),'\135');
  1859. r7remove_last(((T7*)(oBC364tmp_path)),1);
  1860. r7extend(((T7*)(oBC364tmp_path)),'\56');
  1861. r7append(((T7*)(oBC364tmp_path)),((T0*)ms126_470));
  1862. r7extend(((T7*)(oBC364tmp_path)),'\135');
  1863. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1864. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1865. }
  1866. /*FI*/}
  1867. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1868. r7copy(((T7*)(oBC364tmp_path)),r604small_eiffel_directory(C));
  1869. r7append(((T7*)(oBC364tmp_path)),((T0*)ms127_470));
  1870. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1871. }
  1872. /*FI*//*IF*/if (!(/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/)) {
  1873. r306w_put_string(((T0*)ms20_364));
  1874. r306w_put_string(((T0*)ms127_470));
  1875. r306w_put_string(((T0*)ms21_364));
  1876. r306w_put_string(r604small_eiffel_directory(C));
  1877. r306w_put_string(((T0*)ms242_470));
  1878. exit(1);
  1879. }
  1880. /*FI*/r675read_line(((T675*)(oBC364tmp_file_read)));
  1881. R=oBC762last_string;
  1882. _i=r52index_of(((T52*)(oBC364system_list)),R);
  1883. r675disconnect(((T675*)(oBC364tmp_file_read)));
  1884. /*IF*/if ((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/)) {
  1885. r306w_put_string(((T0*)ms22_364));
  1886. r306w_put_string(oBC364tmp_path);
  1887. r306w_put_string(((T0*)ms23_364));
  1888. _i=1;
  1889. while (!((_i)>((((T52*)((T52*)(oBC364system_list))))->_upper/*8*/))) {
  1890. r306w_put_string(r52item(((T52*)(oBC364system_list)),_i));
  1891. r306w_put_character('\n');
  1892. _i=(_i)+(1);
  1893. }
  1894. }
  1895. else {
  1896. R=r52item(((T52*)(oBC364system_list)),_i);
  1897. r306put_string(((T306*)(oBC364echo)),((T0*)ms24_364));
  1898. r306put_string(((T306*)(oBC364echo)),R);
  1899. r306put_string(((T306*)(oBC364echo)),((T0*)ms242_470));
  1900. }
  1901. /*FI*/oBC364system_name=R;}
  1902. return oBC364system_name;}
  1903. int r604parser_buffer_for(T604* C,T0* a1){
  1904. int R=0;
  1905. int _i=0;
  1906. r7copy(((T7*)(oBC604tmp_tail)),a1);
  1907. r7to_lower(((T7*)(oBC604tmp_tail)));
  1908. /*IF*/if (!(r7has_suffix(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)))) {
  1909. r7append(((T7*)(oBC604tmp_tail)),((T0*)ms25_364));
  1910. }
  1911. /*FI*/_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
  1912. while (!(((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))||(R))) {
  1913. r7copy(((T7*)(oBC604parser_buffer_path)),r52item(((T52*)(r604loading_path(C))),_i));
  1914. r7append(((T7*)(oBC604parser_buffer_path)),oBC604tmp_tail);
  1915. r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
  1916. R=/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/;
  1917. _i=(_i)+(1);
  1918. }
  1919. /*IF*/if ((!(R))&&(r794has(((T794*)(r604rename_dictionary(C))),oBC604tmp_tail))) {
  1920. r7copy(((T7*)(oBC604parser_buffer_path)),r794at(((T794*)(r604rename_dictionary(C))),oBC604tmp_tail));
  1921. r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
  1922. /*IF*/if (/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/) {
  1923. R=1;
  1924. }
  1925. else {
  1926. r306w_put_string(((T0*)ms10_604));
  1927. r306w_put_string(oBC604parser_buffer_path);
  1928. r306w_put_string(((T0*)ms137_470));
  1929. exit(1);
  1930. }
  1931. /*FI*/}
  1932. /*FI*//*IF*/if (!(R)) {
  1933. r7copy(((T7*)(oBC604tmp_tail)),a1);
  1934. /*IF*/if (!(r7has_suffix(((T7*)(oBC604tmp_tail)),((T0*)ms25_364)))) {
  1935. r7append(((T7*)(oBC604tmp_tail)),((T0*)ms25_364));
  1936. }
  1937. /*FI*/_i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
  1938. while (!(((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))||(R))) {
  1939. r7copy(((T7*)(oBC604parser_buffer_path)),r52item(((T52*)(r604loading_path(C))),_i));
  1940. r7append(((T7*)(oBC604parser_buffer_path)),oBC604tmp_tail);
  1941. r676load_file(((T676*)(oBC364parser_buffer)),oBC604parser_buffer_path);
  1942. R=/*(IRF4.7is_ready*/((((T676*)((T676*)(oBC364parser_buffer))))->_path/*0*/)!=(NULL)/*)*/;
  1943. _i=(_i)+(1);
  1944. }
  1945. }
  1946. /*FI*//*IF*/if (!(R)) {
  1947. r306w_put_string(((T0*)ms11_604));
  1948. r306w_put_string(a1);
  1949. r306w_put_string(((T0*)ms12_604));
  1950. /*[IRF3.3clear*/((((T7*)(((T7*)(oBC604parser_buffer_path)))))->_count)=(0);
  1951. /*]*/
  1952. r604append_loading_path_in(C,oBC604parser_buffer_path);
  1953. r306w_put_string(oBC604parser_buffer_path);
  1954. }
  1955. /*FI*/return R;
  1956. }
  1957. /*No:SMALL_EIFFEL.fz_b0*/
  1958. T0*oBC364tmp_path=NULL;
  1959. /*No:SMALL_EIFFEL.is_ready*/
  1960. /*No:SMALL_EIFFEL.base_class_count*/
  1961. /*No:SMALL_EIFFEL.fz_se*/
  1962. /*No:SMALL_EIFFEL.os2_system*/
  1963. void r604pop(T604* C){
  1964. C->_top=((((T604*)C))->_top/*12*/)-(1);
  1965. }
  1966. int fBC604rename_dictionary=0;
  1967. T0*oBC604rename_dictionary=NULL;
  1968. T0* r604rename_dictionary(T604* C){
  1969. if (fBC604rename_dictionary==0){
  1970. T0* R=NULL;
  1971. T0* _short_name=NULL;
  1972. T0* _full_name=NULL;
  1973. int _i=0;
  1974. fBC604rename_dictionary=1;
  1975. {T794*n=malloc(sizeof(*n));
  1976. *n=M794;
  1977. r794make(n);
  1978. R=(T0*)n;
  1979. }
  1980. _i=1;
  1981. while (!((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))) {
  1982. r7copy(((T7*)(oBC364tmp_path)),r52item(((T52*)(r604loading_path(C))),_i));
  1983. r7append(((T7*)(oBC364tmp_path)),((T0*)ms13_604));
  1984. r306sfr_connect(((T306*)(oBC364echo)),oBC364tmp_file_read,oBC364tmp_path);
  1985. /*IF*/if (/*(IRF4.7is_connected*/((((T675*)((T675*)(oBC364tmp_file_read))))->_path/*4*/)!=(NULL)/*)*/) {
  1986. while (!(r675end_of_input(((T675*)(oBC364tmp_file_read))))) {
  1987. r675read_word(((T675*)(oBC364tmp_file_read)));
  1988. _full_name=r7twin(((T7*)(oBC762last_string)));
  1989. r675read_word(((T675*)(oBC364tmp_file_read)));
  1990. _short_name=r7twin(((T7*)(oBC762last_string)));
  1991. r7prepend(((T7*)_short_name),r52item(((T52*)(r604loading_path(C))),_i));
  1992. /*IF*/if (r794has(((T794*)R),_full_name)) {
  1993. r306w_put_string(((T0*)ms14_604));
  1994. r306w_put_string(_full_name);
  1995. r306w_put_string(((T0*)ms15_604));
  1996. r306w_put_string(_short_name);
  1997. r306w_put_string(((T0*)ms16_604));
  1998. r306w_put_string(r794at(((T794*)R),_full_name));
  1999. r306w_put_string(((T0*)ms17_604));
  2000. exit(1);
  2001. }
  2002. /*FI*/r794put(((T794*)R),_short_name,_full_name);
  2003. r675skip_separators(((T675*)(oBC364tmp_file_read)));
  2004. }
  2005. r675disconnect(((T675*)(oBC364tmp_file_read)));
  2006. }
  2007. /*FI*/_i=(_i)+(1);
  2008. }
  2009. oBC604rename_dictionary=R;}
  2010. return oBC604rename_dictionary;}
  2011. T0* r604run_class(T0* a1){
  2012. T0* R=NULL;
  2013. T0* _run_string=NULL;
  2014. _run_string=X291run_time_mark(a1);
  2015. /*IF*/if (r250has(((T250*)(oBC604run_class_dictionary)),_run_string)) {
  2016. R=r250at(((T250*)(oBC604run_class_dictionary)),_run_string);
  2017. }
  2018. else {
  2019. {T368*n=malloc(sizeof(*n));
  2020. *n=M368;
  2021. r368make(n,a1);
  2022. R=(T0*)n;
  2023. }
  2024. }
  2025. /*FI*/return R;
  2026. }
  2027. void r604append_loading_path_in(T604* C,T0* a1){
  2028. T0* _sed=NULL;
  2029. int _i=0;
  2030. r7append(((T7*)a1),((T0*)ms62_604));
  2031. _i=(((T52*)((T52*)(r604loading_path(C)))))->_lower/*12*/;
  2032. while (!((_i)>((((T52*)((T52*)(r604loading_path(C)))))->_upper/*8*/))) {
  2033. r7extend(((T7*)a1),'\42');
  2034. r7append(((T7*)a1),r52item(((T52*)(r604loading_path(C))),_i));
  2035. r7extend(((T7*)a1),'\42');
  2036. r7extend(((T7*)a1),'\n');
  2037. _i=(_i)+(1);
  2038. }
  2039. r7append(((T7*)a1),((T0*)ms63_604));
  2040. r7append(((T7*)a1),((T0*)ms121_470));
  2041. _sed=r604get_environment_variable(C,((T0*)ms121_470));
  2042. r7append(((T7*)a1),((T0*)ms64_604));
  2043. /*IF*/if ((_sed)==((void*)(NULL))) {
  2044. r7append(((T7*)a1),((T0*)ms65_604));
  2045. }
  2046. else {
  2047. r7append(((T7*)a1),((T0*)ms66_604));
  2048. r7append(((T7*)a1),_sed);
  2049. r7append(((T7*)a1),((T0*)ms67_604));
  2050. }
  2051. /*FI*/r7extend(((T7*)a1),'\n');
  2052. }
  2053. /*No:SMALL_EIFFEL.top*/
  2054. int r604is_used(T0* a1){
  2055. int R=0;
  2056. R=r718has(((T718*)(oBC604base_class_dictionary)),a1);
  2057. return R;
  2058. }
  2059. /*No:SMALL_EIFFEL.macintosh_system*/
  2060. void r604incr_magic_count(T604* C){
  2061. C->_magic_count=((((T604*)C))->_magic_count/*8*/)+(1);
  2062. }
  2063. /*No:SMALL_EIFFEL.magic_count*/
  2064. /*No:SMALL_EIFFEL.eiffel_suffix*/
  2065. T0* r604base_class(T604* C,T0* a1){
  2066. T0* R=NULL;
  2067. /*IF*/if (r718has(((T718*)(oBC604base_class_dictionary)),(((T451*)((T451*)a1)))->_to_string/*0*/)) {
  2068. R=r718at(((T718*)(oBC604base_class_dictionary)),(((T451*)((T451*)a1)))->_to_string/*0*/);
  2069. }
  2070.  else if ((((T818*)((T818*)(oBC364eiffel_parser))))->_is_running/*8*/) {
  2071. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms6_604);
  2072. r683fatal_error(((T683*)(oBC364eh)),b1);
  2073. }/*]*/
  2074. }
  2075. else {
  2076. /*IF*/if (r604parser_buffer_for(C,(((T451*)((T451*)a1)))->_to_string/*0*/)) {
  2077. R=r818analyse_class(((T818*)(oBC364eiffel_parser)),a1);
  2078. }
  2079. /*FI*//*IF*/if ((R)==((void*)(NULL))) {
  2080. r683add_position((((T451*)((T451*)a1)))->_start_position/*4*/);
  2081. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms7_604);
  2082. r683fatal_error(((T683*)(oBC364eh)),b1);
  2083. }/*]*/
  2084. }
  2085. /*FI*/}
  2086. /*FI*/return R;
  2087. }
  2088. /*No:SMALL_EIFFEL.fatal_error*/
  2089. T0* r604load_class(T604* C,T0* a1){
  2090. T0* R=NULL;
  2091. /*IF*/if (r604parser_buffer_for(C,a1)) {
  2092. R=r818analyse_class(((T818*)(oBC364eiffel_parser)),NULL);
  2093. /*IF*/if ((R)==((void*)(NULL))) {
  2094. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms8_604);
  2095. r683fatal_error(((T683*)(oBC364eh)),b1);
  2096. }/*]*/
  2097. }
  2098. /*FI*/}
  2099. else {
  2100. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms9_604);
  2101. r683fatal_error(((T683*)(oBC364eh)),b1);
  2102. }/*]*/
  2103. }
  2104. /*FI*/return R;
  2105. }
  2106. /*No:SMALL_EIFFEL.us_any*/
  2107. T0*oBC604base_class_dictionary=NULL;
  2108. void r390check_creation_clause(T390* C,T0* a1){
  2109. T0* _args=NULL;
  2110. T0* _top=NULL;
  2111. T0* _bottom=NULL;
  2112. T0* _fn=NULL;
  2113. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/);
  2114. /*IF*/if (X291is_like_current(a1)) {
  2115. _top=r627base_class(((T627*)(X776start_position(_fn))));
  2116. _bottom=X291base_class(a1);
  2117. _fn=r605new_name_of(((T605*)_bottom),_top,_fn);
  2118. /*IF*/if ((_fn)==((void*)(NULL))) {
  2119. _fn=/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/);
  2120. r683add_position(X776start_position(_fn));
  2121. /*[IRF3.6append*/{T0* b1=((T0*)ms143_470);
  2122. r7append(((T7*)(oBC683explanation)),b1);
  2123. }/*]*/
  2124. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  2125. r7append(((T7*)(oBC683explanation)),b1);
  2126. }/*]*/
  2127. /*[IRF3.6append*/{T0* b1=((T0*)ms1_394);
  2128. r7append(((T7*)(oBC683explanation)),b1);
  2129. }/*]*/
  2130. /*[IRF3.6append*/{T0* b1=X291run_time_mark(a1);
  2131. r7append(((T7*)(oBC683explanation)),b1);
  2132. }/*]*/
  2133. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms137_470);
  2134. r683fatal_error(((T683*)(oBC364eh)),b1);
  2135. }/*]*/
  2136. }
  2137. /*FI*/}
  2138. /*FI*/C->_run_feature=r368get_feature(((T368*)(X291run_class(a1))),_fn);
  2139. /*IF*/if (((((T390*)C))->_run_feature/*16*/)==((void*)(NULL))) {
  2140. r390cp_not_found(C,_fn);
  2141. }
  2142. /*FI*//*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  2143. }
  2144.  else if (!(X291has_creation(a1,_fn))) {
  2145. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/)));
  2146. r683add_position(X776start_position(_fn));
  2147. /*[IRF3.6append*/{T0* b1=X776to_string(_fn);
  2148. r7append(((T7*)(oBC683explanation)),b1);
  2149. }/*]*/
  2150. /*[IRF3.6append*/{T0* b1=((T0*)ms2_394);
  2151. r7append(((T7*)(oBC683explanation)),b1);
  2152. }/*]*/
  2153. r683add_type(a1,((T0*)ms67_470));
  2154. r683print_as_fatal_error(((T683*)(oBC364eh)));
  2155. }
  2156. /*FI*/X496add_client((((T390*)C))->_run_feature/*16*/,r592run_class(((T592*)((((T390*)C))->_run_compound/*4*/))));
  2157. /*IF*/if ((/*X496*/((T0*)(((T808*)((T808*)((((T390*)C))->_run_feature/*16*/))))->_result_type/*24*/))!=((void*)(NULL))) {
  2158. r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/));
  2159. r683add_position(X776start_position(_fn));
  2160. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_394);
  2161. r683fatal_error(((T683*)(oBC364eh)),b1);
  2162. }/*]*/
  2163. }
  2164. /*FI*//*IF*/if (((r390arg_count(C))==(0))&&((/*X496*/((T0*)(((T808*)((T808*)((((T390*)C))->_run_feature/*16*/))))->_arguments/*20*/))!=((void*)(NULL)))) {
  2165. r683add_position(X496start_position((((T390*)C))->_run_feature/*16*/));
  2166. r683add_position((((T390*)C))->_start_position/*8*/);
  2167. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms4_394);
  2168. r683fatal_error(((T683*)(oBC364eh)),b1);
  2169. }/*]*/
  2170. }
  2171. /*FI*//*IF*/if ((r390arg_count(C))>(0)) {
  2172. _args=r431to_runnable(((T431*)(X173arguments((((T390*)C))->_call/*20*/))),r390current_type(C));
  2173. /*IF*/if ((_args)==((void*)(NULL))) {
  2174. r390error(r431start_position(((T431*)(X173arguments((((T390*)C))->_call/*20*/)))),((T0*)ms56_470));
  2175. }
  2176. else {
  2177. r431match_with(((T431*)_args),(((T390*)C))->_run_feature/*16*/);
  2178. }
  2179. /*FI*/}
  2180. /*FI*/C->_call=X173make_runnable((((T390*)C))->_call/*20*/,(((T390*)C))->_run_compound/*4*/,(((T390*)C))->_writable/*12*/,_args,(((T390*)C))->_run_feature/*16*/);
  2181. }
  2182. T0* r390add_comment(T390* C,T0* a1){
  2183. T0* R=NULL;
  2184. /*IF*/if (((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r52count(((T52*)((((T393*)((T393*)a1)))->_list/*4*/)))/*)*/)==(0))) {
  2185. R=(T0*)C;
  2186. }
  2187. /*AF*/else {
  2188. {T46*n=malloc(sizeof(*n));
  2189. *n=M46;
  2190. r46make(n,(T0*)C,a1);
  2191. R=(T0*)n;
  2192. }
  2193. }
  2194. /*FI*/return R;
  2195. }
  2196. void r390check_created_type(T390* C,T0* a1){
  2197. T0* _rt=NULL;
  2198. _rt=X291run_type(a1);
  2199. /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_short_flag/*4*/) {
  2200. }
  2201.  else if ((((T605*)((T605*)(X291base_class(_rt)))))->_is_deferred/*16*/) {
  2202. r683add_type(_rt,((T0*)ms2_747));
  2203. r683add_position((((T390*)C))->_start_position/*8*/);
  2204. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms3_747);
  2205. r683fatal_error(((T683*)(oBC364eh)),b1);
  2206. }/*]*/
  2207. }
  2208. /*FI*//*IF*/if (X291is_formal_generic(a1)) {
  2209. r683add_position((((T390*)C))->_start_position/*8*/);
  2210. /*[IRF3.6append*/{T0* b1=((T0*)ms4_747);
  2211. r7append(((T7*)(oBC683explanation)),b1);
  2212. }/*]*/
  2213. r683add_type(a1,((T0*)ms5_747));
  2214. r683print_as_fatal_error(((T683*)(oBC364eh)));
  2215. }
  2216. /*FI*/r368set_at_run_time(((T368*)(X291run_class(_rt))));
  2217. }
  2218. void r390cp_not_found(T390* C,T0* a1){
  2219. r683add_position(X776start_position(/*X173*/((T0*)(((T268*)((T268*)((((T390*)C))->_call/*20*/))))->_feature_name/*12*/)));
  2220. r683add_position(X776start_position(a1));
  2221. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms5_394);
  2222. r683fatal_error(((T683*)(oBC364eh)),b1);
  2223. }/*]*/
  2224. }
  2225. /*No:CREATION_CALL_3.writable*/
  2226. /*No:CREATION_CALL_3.fz_bad_arguments*/
  2227. void r390make(T390* C,T0* a1,T0* a2,T0* a3){
  2228. C->_start_position=a1;
  2229. C->_writable=a2;
  2230. C->_call=a3;
  2231. }
  2232. int r390arg_count(T390* C){
  2233. int R=0;
  2234. /*IF*/if (((((T390*)C))->_call/*20*/)!=((void*)(NULL))) {
  2235. R=X173arg_count((((T390*)C))->_call/*20*/);
  2236. }
  2237. /*FI*/return R;
  2238. }
  2239. /*No:CREATION_CALL_3.call*/
  2240. /*No:CREATION_CALL_3.run_feature*/
  2241. /*No:CREATION_CALL_3.start_position*/
  2242. T0* r390to_runnable(T390* C,T0* a1){
  2243. T0* R=NULL;
  2244. T0* _t=NULL;
  2245. /*IF*/if (((((T390*)C))->_run_compound/*4*/)==((void*)(NULL))) {
  2246. r390check_writable(C,a1);
  2247. _t=X662result_type((((T390*)C))->_writable/*12*/);
  2248. r390check_created_type(C,_t);
  2249. r390check_creation_clause(C,_t);
  2250. R=(T0*)C;
  2251. }
  2252. else {
  2253. {T390*n=malloc(sizeof(*n));
  2254. *n=M390;
  2255. r390make(n,(((T390*)C))->_start_position/*8*/,(((T390*)C))->_writable/*12*/,(((T390*)C))->_call/*20*/);
  2256. R=(T0*)n;
  2257. }
  2258. R=r390to_runnable(((T390*)R),a1);
  2259. }
  2260. /*FI*/return R;
  2261. }
  2262. /*No:CREATION_CALL_3.fz_03*/
  2263. void r390pretty_print(T390* C){
  2264. r238put_string(((T238*)(oBC364fmt)),((T0*)ms1_390));
  2265. X173pretty_print((((T390*)C))->_call/*20*/);
  2266. }
  2267. T0* r390current_type(T390* C){
  2268. T0* R=NULL;
  2269. /*IF*/if (((((T390*)C))->_run_compound/*4*/)!=((void*)(NULL))) {
  2270. R=(((T592*)((T592*)((((T390*)C))->_run_compound/*4*/))))->_current_type/*4*/;
  2271. }
  2272. /*FI*/return R;
  2273. }
  2274. /*No:CREATION_CALL_3.fz_09*/
  2275. /*No:CREATION_CALL_3.run_compound*/
  2276. /*No:CREATION_CALL_3.fz_dot*/
  2277. void r390check_writable(T390* C,T0* a1){
  2278. T0* _w=NULL;
  2279. C->_run_compound=a1;
  2280. _w=X662to_runnable((((T390*)C))->_writable/*12*/,r390current_type(C));
  2281. /*IF*/if ((_w)==((void*)(NULL))) {
  2282. r683add_position(X662start_position((((T390*)C))->_writable/*12*/));
  2283. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms1_747);
  2284. r683fatal_error(((T683*)(oBC364eh)),b1);
  2285. }/*]*/
  2286. }
  2287. else {
  2288. C->_writable=_w;
  2289. }
  2290. /*FI*/}
  2291. void r390error(T0* a1,T0* a2){
  2292. r683add_position(a1);
  2293. r683error(((T683*)(oBC364eh)),a2);
  2294. }
  2295. /*No:CREATION_CALL_3.fatal_error*/
  2296. /*No:CREATION_CALL_3.end_mark_comment*/
  2297. void r699add_into(T699* C,T0* a1){
  2298. T0* _a=NULL;
  2299. int _i=0;
  2300. /*IF*/if (((((T699*)C))->_list/*8*/)!=((void*)(NULL))) {
  2301. _i=1;
  2302. while (!((_i)>((((T608*)((T608*)((((T699*)C))->_list/*8*/))))->_upper/*8*/))) {
  2303. _a=r608item(((T608*)((((T699*)C))->_list/*8*/)),_i);
  2304. /*IF*/if (!(r608fast_has(((T608*)a1),_a))) {
  2305. r608add_last(((T608*)a1),_a);
  2306. }
  2307. /*FI*/_i=(_i)+(1);
  2308. }
  2309. }
  2310. /*FI*/}
  2311. void r699from_runnable(T699* C,T0* a1){
  2312. C->_list=a1;
  2313. C->_current_type=(((T348*)((T348*)(r608item(((T608*)((((T699*)C))->_list/*8*/)),1)))))->_current_type/*12*/;
  2314. }
  2315. void r699make(T699* C,T0* a1,T0* a2,T0* a3){
  2316. C->_start_position=a1;
  2317. C->_header_comment=a2;
  2318. C->_list=a3;
  2319. }
  2320. T0* r699name(void){
  2321. T0* R=NULL;
  2322. R=((T0*)ms26_470);
  2323. return R;
  2324. }
  2325. /*No:CLASS_INVARIANT.start_position*/
  2326. /*No:CLASS_INVARIANT.fz_invariant*/
  2327. void r699pretty_print(T699* C){
  2328. int _i=0;
  2329. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(0);
  2330. /*]*/
  2331. /*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) {
  2332. r238skip(((T238*)(oBC364fmt)),1);
  2333. }
  2334. /*FI*/r238keyword(((T238*)(oBC364fmt)),r699name());
  2335. /*IF*/if (((((T699*)C))->_header_comment/*4*/)!=((void*)(NULL))) {
  2336. r393pretty_print(((T393*)((((T699*)C))->_header_comment/*4*/)));
  2337. }
  2338. /*FI*//*IF*/if (((((T699*)C))->_list/*8*/)!=((void*)(NULL))) {
  2339. _i=1;
  2340. while (!((_i)>((((T608*)((T608*)((((T699*)C))->_list/*8*/))))->_upper/*8*/))) {
  2341. /*[IRF3.3set_indent_level*/((((T238*)(((T238*)(oBC364fmt)))))->_indent_level)=(1);
  2342. /*]*/
  2343. r238indent(((T238*)(oBC364fmt)));
  2344. /*IF*/if (!(r238zen_mode(((T238*)(oBC364fmt))))) {
  2345. r238skip(((T238*)(oBC364fmt)),1);
  2346. }
  2347. /*FI*//*[IRF3.3set_semi_colon_flag*/((((T238*)(((T238*)(oBC364fmt)))))->_semi_colon_flag)=(1);
  2348. /*]*/
  2349. r348pretty_print(((T348*)(r608item(((T608*)((((T699*)C))->_list/*8*/)),_i))));
  2350. _i=(_i)+(1);
  2351. }
  2352. }
  2353. /*FI*/}
  2354. /*No:CLASS_INVARIANT.list*/
  2355. /*No:CLASS_INVARIANT.current_type*/
  2356. /*No:CLASS_INVARIANT.header_comment*/
  2357.  
  2358.